从cs页面启用/禁用必填字段验证器
本文关键字:字段 验证 cs 启用 | 更新日期: 2023-09-27 18:07:36
我的页面中有两个文本框和两个按钮。
一个隐藏,另一个显示。
当我点击Button1
时,它将保存两个TextBox
的数据,并将通过RequiredFieldValidator
验证每个TextBox。
然后当我点击Button2
时,它会隐藏自己(Button2
),并显示隐藏的TextBox
。
两个TextBox
都有RequiredFieldValidator
验证Button1
的事件点击。
现在我的问题是,当我简单地输入文本到第一个文本框,并单击保存,按钮点击是验证隐藏字段所需的字段。我只是想验证2文本框时,它显示。
我怎样才能避免这种情况?
你可以简单地使用RequiredFieldValidator
的Enabled="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。
我正在工作的项目有所有可见的字段,但基于某些条件,验证必须被禁用。