如何在一个ASP.NET页面中处理多个表单

4

我有一个asp.net页面,我认为它会有多个表单。我添加了一个asp面板,并将表单和验证器添加到控件中。一切正常。但是,如果我尝试添加另一个面板和表单,则页面无效。我这样做的原因是任何提交数据的尝试都会触发所有验证器。我知道我可以将每个表单分解成每个页面。但对于我的设计来说,这似乎很傻。

我想要的是在一个页面上拥有多个表单。

或者使验证器仅在某些情况下起作用。

或者将验证器分组,仅在与验证器同属于同一面板的按钮单击时才起作用。

1个回答

4
在一个 ASPX 页面中不能放置多个 表单 标签,这是 ASP.Net Web Form 的限制。
但是,您可以通过使用 ValidationGroup 来模拟它。例如 -
<%-- Group One --%>
<asp:TextBox ID="TextBox1" runat="server"
    ValidationGroup="One" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1"
    runat="server"
    Display="Dynamic"
    ValidationGroup="One"
    ControlToValidate="TextBox1"
    Text="Textbox one is required." />
<asp:Button runat="server" ID="Button1"
    OnClick="Button1_Click"
    Text="Submit"
    ValidationGroup="One" />
<hr/>
<%-- Group Two --%>            
<asp:TextBox ID="TextBox2" runat="server"
    ValidationGroup="Two" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator2"
    runat="server"
    Display="Dynamic"
    ValidationGroup="Two"
    ControlToValidate="TextBox2"
    Text="Textbox two is required.." />
<asp:Button runat="server" ID="Button2"
    OnClick="Button2_Click"
    Text="Submit"
    ValidationGroup="Two" />

注意:如果您想在单个页面中使用多个表单标记,您可能需要查看ASP.Net MVC


谢谢回答。按预期工作。抱歉回复晚了。 :D - lk404

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接