-1

这是我的按钮。

<asp:Button ID="btnNext" runat="server" Text="Next" Style="display: none" OnClick="btnNext_Click" CausesValidation="true" ValidationGroup="vgLinR"/>

当我在 aspx 端验证工作中编写 ValidationGroup="vgLinR" 时。但我有 2 个不同的验证组。所以我需要一键触发这两个验证组。

所以我在后面的代码中编写了该代码:

protected void btnNext_Click(object sender, EventArgs e)
{
       Page.Validate("vgLinR");
       Page.Validate("vgLogR");
}

但它不起作用。为什么?我怎样才能做到这一点?

4

3 回答 3

0

它会为你工作..

  <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <br />
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1" ErrorMessage="*" Font-Size="Medium" ForeColor="Red" ValidationGroup="group 1">*</asp:RequiredFieldValidator>
        <br />
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        <br />
        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="TextBox2" ErrorMessage="*" Font-Size="Medium" ForeColor="Red" ValidationGroup="group 1">*</asp:RequiredFieldValidator>
        <br />
        <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
        <br />
        <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="TextBox3" ErrorMessage="*" Font-Size="Medium" ForeColor="Red" ValidationGroup="group 2">*</asp:RequiredFieldValidator>
        <br />
        <asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
        <br />
        <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="TextBox4" ErrorMessage="*" Font-Size="Medium" ForeColor="Red" ValidationGroup="group 2">*</asp:RequiredFieldValidator>
        <br />
        <br />
        <br />
        <br />
        <br />
        <asp:Button ID="Button1" runat="server" Text="validate all" OnClick="Button1_Click"/>  <br />

    </div>
    </form>

并为 onclick 事件编写代码

protected void Button1_Click(object sender, EventArgs e)
    {
        Page.Validate();
    }
于 2014-03-02T16:31:05.883 回答
0

尝试这个

 public bool Validate() 
        {
            var isValid = false;
Page.Validate("vgLinR");
            isValid = Page.IsValid;
            if (isValid) 
            {
            Page.Validate("vgLogR");
                isValid = Page.IsValid;
            }

            return isValid;
        }
于 2014-03-02T16:33:23.427 回答
-1

看到你对阿米特的回答有点太晚了。我已经相应地更新了我的答案。如果它不符合您的要求,您可能可以使用类似的想法。

在我的代码中,我使用单个 ValidationSummary 控件而没有指定任何验证组。还要从您的按钮中删除验证组。文本框 a 和 b 可以在一个验证组 vg1 中,而文本框 c 和 d 可以在另一个验证组 vg2 中。我不确定您是如何设置验证组的。

protected void btnNext_Click(object sender, EventArgs e)
{
    if (RadioButton1.Checked)
    {
        Page.Validate("vg1");
        ValidationSummary1.ValidationGroup = "vg1";

    }
    else if (RadioButton2.Checked)
    {
        Page.Validate("vg2");
        ValidationSummary1.ValidationGroup = "vg2";
    }


    if (Page.IsValid)
    {
        //do something in here
    }
}

上面的代码将进行服务器端验证。要在客户端也这样做,您需要添加一些 javascript。

查看另一篇文章以启用/禁用 JQuery 或 Javascript 的验证组

于 2014-03-02T16:46:07.143 回答