日期:2014-05-18  浏览次数:20860 次

***.Click += new EventHandler(this.del_Click)事件无法响应,为何?
动态加载控件:
B[1]   =   new   Button();
B[1].ID   =   "button2 ";
B[1].Text   =   "删除 ";
B[1].Click   +=   new   EventHandler(this.del_Click);
    Click事件:


已申明了这个CLICK属性,为何运行时,点击Button时,无法执行?
private   void   del_Click(object   sender,   System.EventArgs   e)
{
      .....
}

请各位帮我分析下原因吧~~急

------解决方案--------------------
要记的ASP.NET所有控件都必须在页面postback回服务器的时候重新加载,你动态加载的控件也一样。如果你点击 "添加 "按钮动态加载1个控件,你再点击一次其他的按钮postback回服务器,你会发现你前面添加的控件消失了。

所以如果你动态加载的控件不是写在Page_Load中,那你必须想办法记住你动态添加的控件,并在页面postback后重新加载一次。
------解决方案--------------------
楼上正解,必须使用像Session等操作把相应加载的动态控件存入其中,否则页面postback信息将全部消失掉,当然就无法触发事件
------解决方案--------------------
更正一下,应该把 "B[1].Click += new EventHandler(this.del_Click); "改写成
"B[1].Click += new EventHandler(this.del_Click,B[1]);