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

最后发布: 2012-06-28 13:31:48


问题

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

btn.Click += new EventHandler(btn_Click);

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

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

c# asp.net events
回答

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


回答

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

检查有关页面生命周期MSDN文章。 我认为它会帮助你理解。 Load之后看到事件处理发生在inmediatly