ASP.NET Click()事件不会在第二次回发时触发

时间:2009-06-04 21:05:18

标签: asp.net events postback

我有一个ASP.NET Web表单。我第一次提交表单时,会引发SubmitButton_Click事件。

表单将返回浏览器,或者出现验证错误,或者选择使用新值再次提交表单。

再次汇总表单时,SubmitButton_Click事件永远不会触发。 Page_Load会触发,但不会触发按钮。

有谁知道为什么我会在服务器端看到这种行为?

(我正在使用jQuery和验证控件客户端,但我认为它不会导致问题。无论如何我都会提到它。)

修改

<asp:Button ID="SubmitButton" OnClick="SubmitButton_Click"
      runat="server" />

事件在控件上设置,而不是在代码中设置。

4 个答案:

答案 0 :(得分:2)

如果您未在页面生命周期中尽早创建控件,则可能会出现动态创建的控件。你的细节有点短,但你的按钮是动态创建的吗?

答案 1 :(得分:0)

你如何“连接”你的事件处理程序?

听起来你是在if(IsPostback)块中连接它,它不是第二次运行...

答案 2 :(得分:0)

JQuery是否提交表单?如果未在客户端调用__doPostBack()(使用适当的争论),则不会发生服务器端事件。

答案 3 :(得分:0)

Click事件处理程序如何与提交按钮相关联?声明性地还是代码?

如果它在代码中,请确保您没有在这样的块中执行此操作:

if (!Page.IsPostBack) {
    submitButton.Click += new EventHandler(submitButton_Click);
}

这会阻止在回发页面时附加事件处理程序(即Page.IsPostBacktrue)。