Функция Validate() не запускается

Вот моя кнопка.

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

Когда я пишу ValidationGroup="vgLinR" в aspx сторона проверки работает. Но у меня есть 2 разные группы проверки. Поэтому мне нужно запустить эти 2 группы проверки в одну кнопку.

поэтому я пишу этот код в коде позади:

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

но это не работает Зачем? Как я могу это сделать?

3 ответа

Это будет работать для вас..

  <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();
    }

Попробуй это

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

            return isValid;
        }

Видел твой ответный ответ для Амит слишком поздно. Я обновил свой ответ соответственно. Может быть, вы можете использовать аналогичную идею, если она не соответствует вашим требованиям.

В моем коде я использую один элемент управления 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

Другие вопросы по тегам