2011-12-31 56 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