代码之家  ›  专栏  ›  技术社区  ›  y0mbo

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

  •  3
  • y0mbo  · 技术社区  · 15 年前

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

    表单将返回到浏览器,其中可能有验证错误,也可能有重新提交带有新值的表单的选项。

    再次提交表单时,SubmitButton“单击”事件永远不会激发。页面加载触发,但不是按钮。

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

    (我正在使用jquery和验证控制客户端,但我不认为这会导致问题。我想我还是会提到的)。

    编辑:

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

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

    4 回复  |  直到 15 年前
        1
  •  0
  •   jrcs3    15 年前

    jquery是否提交表单?如果 __doPostBack() 不在客户端调用(使用approperte参数),不会发生服务器端事件。

        2
  •  2
  •   Joel Coehoorn    15 年前

    如果在页面生命周期中没有足够早地创建控件,则动态创建的控件可能会发生这种情况。您在细节上有点简短,但是您的按钮是动态创建的吗?

        3
  •  0
  •   nikmd23    15 年前

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

    听起来你是在把它连接到一个if(ispostback)块中,这不是第二次运行…

        4
  •  0
  •   dariom    15 年前

    单击事件处理程序如何与提交按钮关联?声明的还是代码的?

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

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

    这将防止在回发页面时附加事件处理程序(即 Page.IsPostBack true )