我的页面中有两个TextBox和两个Buttons。
一个被隐藏,另一个被显示。
点击Button1
后,它会保存两个TextBox
的数据,并按RequiredFieldValidator
验证每个TextBox。
然后当我点击Button2
时,它会隐藏自己(Button2
)并显示隐藏的TextBox
。
TextBox
RequiredFieldValidator
Button1
验证了{{1}}的事件点击。
现在我的问题是,当我只是在第一个TextBox中输入文本并单击“保存”时,按钮单击将验证隐藏字段的必填字段。我只想在显示时验证2文本框。
我该如何避免这种情况?
答案 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。
我正在工作的项目具有所有可见字段,但根据某些条件,必须禁用验证。