C# 正则表达式验证控件禁用运行时
我有一个RegularExpressionValidator控件,它从文本框中检查正确的日期 我只需要在插入数据时选中该文本框。如果为空,则验证控件应允许进一步进行。但一直以来,控制否认了这一点 有一点是,当我在文本框中输入错误的日期时,会出现错误消息,但当我在输入错误的日期后输入正确的日期时,错误消息不会消失 我的代码是:C# 正则表达式验证控件禁用运行时,c#,asp.net,C#,Asp.net,我有一个RegularExpressionValidator控件,它从文本框中检查正确的日期 我只需要在插入数据时选中该文本框。如果为空,则验证控件应允许进一步进行。但一直以来,控制否认了这一点 有一点是,当我在文本框中输入错误的日期时,会出现错误消息,但当我在输入错误的日期后输入正确的日期时,错误消息不会消失 我的代码是: <label for="textarea">Birth Date</label><asp:TextBox onkeypress="retur
<label for="textarea">Birth Date</label><asp:TextBox
onkeypress="return isQuote(event);" ID="txtbdate"
onfocus="showCalendarControl(this);" onfocusout="return
validdate(document.form1.txtbdate.text);" CssClass="TextStyle1 uppercase"
runat="server"></asp:TextBox>
<asp:MaskedEditExtender ID="MaskedEditExtender11" runat="server"
TargetControlID="txtbdate" Mask="99-99-9999" MaskType="None" AutoComplete="true"
AcceptNegative="Left" ErrorTooltipEnabled="True" ClearMaskOnLostFocus="false"
ClearTextOnInvalid="True" />
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
ErrorMessage="Enter Valid Date"
ValidationExpression="^(?:(?:(?:0?[1-9]|1\d|2[0-8])\/(?:0?[1-9]|1[0-2]))\/(?:(?:1[6-9]|
[2-9]\d)\d{2}))$|^(?:(?:(?:31\/0?[13578]|1[02])|(?:(?:29|30)\/(?:0?[1,3-9]|1[0-2])))
\/(?:(?:1[6-9]|[2-9]\d)\d{2}))$|^(?:29\/0?2\/(?:(?:(?:1[6-9]|[2-9]\d)(?:0[48]|[2468]
[048]|[13579][26]))))$" ControlToValidate="txtbdate" Display="Dynamic"
ValidationGroup="Save" ForeColor="Red" Font-Bold="true" SetFocusOnError="true"
></asp:RegularExpressionValidator>
出生日期
请帮忙
提前感谢…(如果这个答案不正确,请让我知道。不过,从您的评论中,我认为这是您的问题)
您需要在检查条件后启用验证程序
;大概是这样的:
if (txtBdate.Text.Substring(0, 2) != " .") { // not sure why you do this?
RegularExpressionValidator1.Enabled = true;
}
现在,您需要验证页面。。您可以通过拨打以下电话来完成此操作:
Page.Validate(); // <--- this
if (Page.IsValid) {
// etc..
}
else {
// not valid..
}
Page.Validate();//验证程序在禁用时不会启动。默认情况下禁用它,并在调用Validate
之前重新启用它,仅供参考您可以在生日的正则表达式中使用^([012]\d | 30 | 31)/(0\d | 10 | 11 | 12)/\d{4}$,如果这是它应该执行的操作。我在源文件和.cs文件中设置了Enabled=false,代码是:if(txtBdate.Text.Substring(0,2)!=“uuuu”){RegularExpressionValidator1.Enabled=true;}仍不工作…@Simon Whitehead如果(txtbate.Text.Substring(0,2)!=“_uuu”)被选中,以确定用户是否插入了任何日期。如果用户输入了日期,则我只想使用RegExValidator进行检查。如果用户未输入任何日期,文本框将包含(_uu/uu/uuu/u uuuuu)好的,你试过我上面说的吗?