2011-12-31 42 views
1

我使用佔位符和附加到鏈接按鈕的事件處理程序動態創建用戶控件上的鏈接按鈕click = = new Event(Button_Click )不點火用戶控件(ascx)文件中的佔位符和佔位符上的ASP.NET按鈕未觸發按鈕事件

由於提前


代碼

protected override void OnInit(EventArgs e) 
      MenuListPlaceHolder.Controls.Add(new LiteralControl("<li>")); 
      ctrl.ID = this.UniqueID + (nCounter++).ToString(); 
      ctrl.Text = cardType.Name; 
      ctrl.Click += new EventHandler(this.CardName_Click);    
      MenuListPlaceHolder.Controls.Add(ctrl); 
      MenuListPlaceHolder.Controls.Add(new LiteralControl("</li>")); 

片段點擊後回傳事件被觸發,但不執行的Ca rdName_Click


回答

0

你必須重視它Page_Load事件

像這樣:

protected void Page_Load(object sender, EventArgs e) { 
    this.Btn.OnClick+=new Event(Button_Click) 
} 

,你應該看看:here to learn about page cycle

+0

根據您的鏈接從OP代碼應該繼續下去在PreInit中。 OnInit在Page_load之前觸發,所以我很難相信你的建議可以用於OP – rene 2011-12-31 14:09:26

+0

是的,但是PreInit忘記了你應該在每個頁面請求上附加委託,而不是一次,所以我從我的經驗談起。 – IamStalker 2011-12-31 18:57:35