it-roy-ru.com

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

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

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

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

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

Оба TextBox имеют RequiredFieldValidator, проверяющий по клику Button1 Event.

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

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

12
Rahul Chowdhury

Ну, вы можете просто использовать свойство 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
}
28
Praveen Nambiar

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

4
Vijay Singh Rana

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

2
Grant Thomas

Это 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;
}

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

1
Chetan Sanghani