多个提交按钮不会在aspx上回发 - 只有最后一个按钮

时间:2012-07-25 20:10:22

标签: c# asp.net postback

在我的aspx页面上,我有两个fieldsets,每个<asp:Panel DefaultButton="...">都包含一个<input type="submit">,它们有自己的<div id="content">...</div> <asp:Panel runat="server" id="formPanel1" DefaultButton="form1SubmitButton"> <fieldset> <asp:TextBox runat="server" id="textbox1"/> <asp:TextBox runat="server" id="textbox2"/> <asp:Button runat="server" id="form1SubmitButton" OnClick="form1SubmitButton_OnClick"/> </fieldset> </asp:Panel> <asp:Panel runat="server" id="formPanel2" DefaultButton="form2SubmitButton"> <fieldset> <asp:TextBox runat="server" id="textbox3"/> <asp:TextBox runat="server" id="textbox4"/> <asp:Button runat="server" id="form2SubmitButton" OnClick="form2SubmitButton_OnClick"/> </fieldset> </asp:Panel> 按钮。这是一个缩写版本......

form2SubmitButton

只有最后一个提交按钮{{1}}才会回发,另一个按钮在点击时不会执行任何操作。 我已经简化了上面的代码,但我应该提一下,每个表单(包括Panel)都保存在aspx上注册的单独用户控件中。

更新经过一些研究后,我发现由于母版页上另一个字段集上的验证程序,提交无法正常工作。该字段集用于登录该站点,因此需要它。思考?

2 个答案:

答案 0 :(得分:2)

正如PCasagrande所提到的,请确保您的验证组与默认按钮和所有验证器匹配。特别适用于您的日志记录部分。

示例:

<asp:Panel ID="pnlUpdateInfo" runat="server" DefaultButton="btnUpdateInfo">

  <ASP:TEXTBOX id="txtZip" runat="server"></ASP:TEXTBOX>   
  <asp:RequiredFieldValidator id="reqvalZipSignUp" runat="server"
    ControlToValidate="txtZip" ValidationGroup="btnUpdateInfo" />                       

  <asp:Button ID="btnUpdateInfo" runat="server" ValidationGroup="btnUpdateInfo"  />

</asp:Panel>

答案 1 :(得分:1)

原来它与HTML5约束验证有关。我认为这是因为在chrome中,从控制台,我收到错误An invalid form control with name='...' is not focusable。这导致我this发帖。我将html5属性formnovalidate="formnovalidate"添加到提交按钮,一切正常(*在chrome v20.0.1132.57,firefox v14.0.1,IE9 v9.0.8112中测试)。

所以回顾一下,这是答案......

<asp:Button runat="server" id="submit1" OnClick="submit1_OnClick" text="Submit" formnovalidate="formnovalidate"/>