从cs页面启用/禁用必填字段验证器

本文关键字:字段 验证 cs 启用 | 更新日期: 2023-09-27 18:07:36

我的页面中有两个文本框和两个按钮。

一个隐藏,另一个显示。

当我点击Button1时,它将保存两个TextBox的数据,并将通过RequiredFieldValidator验证每个TextBox。

然后当我点击Button2时,它会隐藏自己(Button2),并显示隐藏的TextBox

两个TextBox都有RequiredFieldValidator验证Button1的事件点击。

现在我的问题是,当我简单地输入文本到第一个文本框,并单击保存,按钮点击是验证隐藏字段所需的字段。我只是想验证2文本框时,它显示。

我怎样才能避免这种情况?

从cs页面启用/禁用必填字段验证器

你可以简单地使用RequiredFieldValidatorEnabled="false"属性。

根据你的问题,你的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
}

使用ValidationGroup="group"属性到button,并为您想要验证的文本分配验证组。希望对大家有所帮助

您可以为次要按钮指定CausesValidation="false",当验证组对于单个字段过多和B)您必须在添加进一步控件时维护验证组(我们是否将其放在按钮,验证器,字段验证摘要上?)这不是标准的,但在编辑时不太实用。

这是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;
}

试试这个…

如果你希望使用后端验证,那么检查一下,它对我有效。

Requiredfieldvalidator.Enabled = False

Requiredfieldvalidator是ID。

我正在工作的项目有所有可见的字段,但基于某些条件,验证必须被禁用。