2009-01-22 90 views
1

我有一個LinkBut​​ton的自定義控件。當我點擊LinkBut​​ton時,它的點擊事件不會觸發。自定義控件事件沒有觸發

[ToolboxData("<{0}:View runat=server></{0}:View>")] 
public class View : Control 
{ 
    private LinkButton lbNextPage; 
    protected override void CreateChildControls() 
    { 
     lbNextPage = new LinkButton() { ID = "lbNextPage", Text = "Next Page" }; 

     lbNextPage.Click += delegate(object sender, EventArgs e) 
     { 
      Page.Response.Write("Event Fires!"); 
     }; 

     Controls.Add(lbNextPage); 
    } 
} 

我已提取只負責LinkBut​​ton的和它的事件(這是上面包括在內)的呈現的代碼,以便除去所有的其他因素。

任何想法爲什麼事件沒有解僱?我錯過了什麼嗎?

回答

1

這基本上是因爲控件在頁面生命週期中創建得太晚。根據MSDN Lifecycle document,您需要在PreInit中創建任何動態控件,而不是在CreateChildControls中創建。如果您正在開發自定義控件,則需要在Init重寫中創建所有動態控件,並在其中掛接事件。

希望這會有所幫助! :)