2009-03-20 43 views
5

Tôi có nội dung ghi đè sự kiện OnInit của trang cái. Ghi đè hoạt động tốt, cho đến khi tôi đặt điều khiển người dùng tùy chỉnh trên trang: trong trường hợp này sự kiện OnInit không kích hoạt trang nội dung (không ghi đè được sử dụng trong điều khiển người dùng)Sử dụng sự kiện OnInit trong asp.net

Các nguyên nhân/giải pháp có thể có cho điều này? (Tôi sử dụng sự kiện OnInit để tạo điều khiển động)


Edit:

bây giờ tôi cố gắng này trong trang nội dung:

(The OnPreInit phần chạy, nhưng Masters_Init không nhận được được gọi là ...)

protected override void OnPreInit(EventArgs e) 
    { 
     base.Master.Init += new EventHandler(Masters_Init); 
    } 

    void Masters_Init(object sender, EventArgs e) 
    { 
    //code 
    } 

Trả lời

17

Bạn đang gọi cơ sở.Trong đó phải không?

public override void OnInit(EventArgs e) 
{ 
    // code before base oninit 
    base.OnInit(e); 
    // code after base oninit 
} 

Cập nhật

public class Page1 : Page 
{ 
    public Page1 : base() { 
    PreInit += Page_PreInit; 
    } 
    void Page_PreInit(object sender, EventArgs e) 
    { 
    Master.Init += Master_Init; 
    } 
    void Master_Init(object sender, EventArgs e) 
    { 
    //code 
    } 
} 

Cũng như đã đề cập trong các ý kiến ​​tôi khuyên bạn không trọng các sự kiện nếu bạn không phải, nhưng nếu bạn phải chắc chắn để gọi căn cứ. như vậy trong chỉnh sửa của bạn trên nó nên

protected override void OnPreInit(EventArgs e) 
{ 
    base.OnPreInit(e); 
    base.Master.Init += new EventHandler(Masters_Init); 
} 
+0

chắc chắn, nhưng sự kiện này không được bắn: vì vậy nó không quan trọng nào – akosch

+0

Bạn có thể chỉ đăng ký vào các sự kiện Init của masterpage thay vì ghi đè OnInit? – bendewey

+0

Nếu nó không hoạt động đăng một số mã trong câu hỏi của bạn. – bendewey

Các vấn đề liên quan