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

时间:2013-04-05 06:49:25

标签: c# javascript asp.net validation

我的页面中有两个TextBox和两个Buttons。

一个被隐藏,另一个被显示。

点击Button1后,它会保存两个TextBox的数据,并按RequiredFieldValidator验证每个TextBox。

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

TextBox RequiredFieldValidator Button1验证了{{1}}的事件点击。

现在我的问题是,当我只是在第一个TextBox中输入文本并单击“保存”时,按钮单击将验证隐藏字段的必填字段。我只想在显示时验证2文本框。

我该如何避免这种情况?

5 个答案:

答案 0 :(得分:28)

您可以简单地使用Enabled="false"的{​​{1}}属性。

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

答案 1 :(得分:4)

ValidationGroup="group"属性用于button,并将验证组分配给您要验证的文本。 希望它会有所帮助

答案 2 :(得分:2)

您可以为辅助按钮指定CausesValidation="false",当验证组为A)对于单个字段而言过度且B)在添加更多控件时必须维护验证组时,这可能不那么冗长且可能令人困惑(我们是否把它放在按钮,验证器,字段验证摘要上?记住标准并不是很多,但在编辑时不太实用。

答案 3 :(得分:1)

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

试试这个.......

答案 4 :(得分:0)

如果您希望使用后端验证,请检查一下,它对我有用。

Requiredfieldvalidator.Enabled = False

Requiredfieldvalidator是一个ID。

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