Включить/отключить Обязательный модуль проверки поля с страницы cs?

У меня есть две TextBox и две кнопки на моей странице.

Один скрыт, а другой отображается.

Когда я нажимаю Button1, он сохраняет данные двух TextBox и проверяет каждый текстовый блок на RequiredFieldValidator.

Затем, когда я нажимаю Button2, он просто скроется (Button2) и покажет скрытый TextBox.

Оба TextBox имеют RequiredFieldValidator, проверяющие на Button1 Событие.

Теперь моя проблема в том, что когда я просто ввожу текст в 1-й текстовый блок и нажимаю "Сохранить", нажатие кнопки проверяет требуемое поле для скрытого поля. Я просто хочу проверить текстовое поле 2 при его показе.

Как я могу избежать этого?

Ответ 1

Ну, вы можете просто использовать свойство Enabled="false" RequiredFieldValidator.

Ваш markup будет выглядеть примерно так на основе вашего Вопроса.

<asp:TextBox runat="server" ID="tb1"></asp:TextBox>
<asp:RequiredFieldValidator runat="server" ID="rfv1" ControlToValidate="tb1" ErrorMessage="*" ValidationGroup="gvSave">
</asp:RequiredFieldValidator>

<asp:TextBox runat="server" ID="tb2" Visible="false"></asp:TextBox>
<asp:RequiredFieldValidator runat="server" ID="rfv2" ControlToValidate="tb2" ErrorMessage="*" Enabled="false" ValidationGroup="gvSave">
</asp:RequiredFieldValidator>

<asp:Button runat="server" ID="btn1" Text="Save" onclick="btn1_Click" ValidationGroup="gvSave"/>
<asp:Button runat="server" ID="btn2" Text="Show" onclick="btn2_Click" />

И ваш codebehind вот так:

protected void btn2_Click(object sender, EventArgs e)
{
    tb2.Visible = true;
    rfv2.Enabled = true; // Enables the second requiredfieldvalidator
}

protected void btn1_Click(object sender, EventArgs e)
{
  // your Saving code here
}

Ответ 2

используйте свойство ValidationGroup="group" для button и назначьте группе проверки текст, на который вы хотите проверить. Надеюсь, что это поможет.

Ответ 3

Вы можете указать CausesValidation="false" для дополнительной кнопки, это менее подробное и потенциально запутанное, если группы проверки являются A) чрезмерными для одного поля, и B) вы должны поддерживать группы проверки при добавлении дополнительных элементов управления (мы ставим его на кнопке, валидаторе, поле и сводке проверки? Это не так много, помните стандарт, но менее практичен при редактировании.

Ответ 4

Это Aspx:

                 <td align="right">
                            Cut Type :
                        </td>
                        <td class="required">
                            <telerik:RadComboBox ID="cmbCutType" runat="server" MaxHeight="200px" Width="200px"
                                Filter="Contains" EnableLoadOnDemand="true" EmptyMessage="Select Cut Type" OnSelectedIndexChanged="cmbCutType_SelectedIndexChanged"
                                AutoPostBack="true">
                            </telerik:RadComboBox>
                            <asp:RequiredFieldValidator runat="server" ID="rfvCutType" Display="None" ControlToValidate="cmbCutType" InitialValue=""
                                ValidationGroup="Save" ErrorMessage="Cut Type is Mandatory"
                                ForeColor="Red"></asp:RequiredFieldValidator>
                            <ajaxToolkit:ValidatorCalloutExtender ID="vceCutType" TargetControlID="rfvCutType"
                                runat="server">
                            </ajaxToolkit:ValidatorCalloutExtender>
                        </td>

Это код:

protected void btn2_Click(object sender, EventArgs e)
{
    rfvCutType.IsValid = false;
}

попробуйте это.......