![](/img/trans.png)
[英]how to set the OnSelectedIndexChanged in C# codebehind instead of ASP.net
[英]how to set regular validation expression dynamically in codebehind C# ASP.NET
我在验证TextBox1
ascx
页面中有RegularExpressionValidator
。
<asp:RegularExpressionValidator ID ="RegularExpressionValidatorStateNumber" runat = "server" ControlToValidate="TextBox1"
ErrorMessage="Error message" Display ="Dynamic" ValidationExpression=""/>
我需要根据dropdownlist
选择动态更改ValidationExpression
。
这是我在 codeBehind 中所做的:
protected void DropDlSelectedIndexChanged(object sender, EventArgs e)
{
string region = DropDl.SelectedItem.Text;
RegularExpressionValidatorStateNumber.ValidationExpression = GetRegex(region);
}
返回正则表达式的函数GetRegex(region)
工作正常。 但验证不起作用。 插入错误数据时,验证器不会显示错误消息。
为什么验证不起作用? 或者如何动态设置验证表达式?
不将您的错误消息显示为ErrorMessage ,而是显示为Text 。 Text="格式不正确" ;
如果你给它上色也会很好: ForeColor = Color.Red
使用MATCH
返回一个 Match 对象,其中包含输入字符串中的所有匹配项。 当输入文本中存在多个匹配项时,这很有用。 以下代码导致多个匹配:
string region = DropDl.SelectedItem.Text; // @"^([\w]+) ([\w]+)$";
string yourText="abcdxyz"
Match m = Regex.Match(yourText, region , RegexOptions.CultureInvariant);
foreach (Group g in m.Groups)
{
Console.WriteLine(g.Value);
}
ex0: 10 位手机号码 rgvMobNumber.ValidationExpression = "\\d{" + iLength + "}";
ex1: rgvPostcode.ValidationExpression = @"^[a-zA-Z0-9\\s]{" + txtboxLength + ",8}$"; ex2 rgvPostcode.ValidationExpression =@"^[\\s\\S]{" + MinLength + "," + MaxLength + "}$";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.