动态添加的ASP.NET按钮单击处理程序被忽略

时间:2012-06-28 13:31:48

标签: c# asp.net events

我正在向这样的按钮添加事件处理程序:

btn.Click += new EventHandler(btn_Click);

但是btn_Click函数没有被调用(永远不会点击它中的断点),按钮只是重新加载页面。在我过去的经验中,asp按钮通常在重新加载页面之前执行点击代码,那么如何在动态添加事件时实现呢?

我也设置CausesValidation = false,虽然页面上没有验证,所以我认为无论如何都不会产生影响。

2 个答案:

答案 0 :(得分:2)

无论是否回发页面,都需要为每个请求绑定事件处理程序。每个页面请求的开头都会丢失事件处理程序的绑定。按钮的事件处理程序通常绑定在Page_Load中。

答案 1 :(得分:1)

您必须在Load事件(或之前)上设置事件处理程序。如果你在Load之后执行它,那么它将不会被执行,因为在评估事件的处理程序时它将不存在。

检查与页面生命周期相关的this msdn文章。我认为它会帮助你理解。请参阅Load

之后的事件处理