RegularExpressionValidator的ValidationExpression属性如何在后台进行动态控制?
本想这样实现,但是不行,所以请各位帮帮忙,嘿嘿
            ……
            case "1": 
                lbl_RegCodeFirstName.Text = "G";
                rev_RegCerificateCode.ValidationExpression = "^d{11}$";
                rev_RegCerificateCode.ErrorMessage = "11位数字";
                break;
            case "2": 
                lbl_RegCodeFirstName.Text = "SH";
                rev_RegCerificateCode.ValidationExpression = "^d{8}$";
                rev_RegCerificateCode.ErrorMessage = "8位数字";
                break;
            ……

解决方案 »

  1.   

    你正则错了,改为: 
    case "1": 
                    lbl_RegCodeFirstName.Text = "G"; 
                    rev_RegCerificateCode.ValidationExpression = "^\d{11}$"; 
                    rev_RegCerificateCode.ErrorMessage = "11位数字"; 
                    break; 
                case "2": 
                    lbl_RegCodeFirstName.Text = "SH"; 
                    rev_RegCerificateCode.ValidationExpression = "^\d{8}$"; 
                    rev_RegCerificateCode.ErrorMessage = "8位数字"; 
                    break; 
      

  2.   

    本帖最后由 lxcnn 于 2010-01-19 17:46:24 编辑
      

  3.   

    验证n位的数字:^\d{n}$ 
    可直接通过JS控制
      

  4.   


    哦~~确实写错了呢,不好意思哦~~~
    但是像您那样写提示错误,我改成rev_RegCerificateCode.ValidationExpression = "^\\d{8}$";了,还是不行~~~
      

  5.   


    具体是怎么不行了?这段代码是在哪里? Page_Load还是?
    放心,这种方式肯定可以,我一直这么用的!
      

  6.   

    这个是放在DropDownList的OnSelectedIndexChanged事,另外 rev_RegCerificateCode是放在UpdatePanel里的
      

  7.   

    是的对哦。
    看我做的测试,如下:
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <div>
                    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
                        ControlToValidate="TextBox1" ErrorMessage="必须填写"></asp:RequiredFieldValidator>
                    <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="请输入11数字"
                        ValidationExpression="^\d{11}$" ControlToValidate="TextBox1"></asp:RegularExpressionValidator>
                </div>
                <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
            </ContentTemplate>
        </asp:UpdatePanel>
        </form>
    </body>
    </html>using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;namespace WebApplication1
    {
        public partial class WebForm1 : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {        }        protected void Button1_Click(object sender, EventArgs e)
            {
                if (this.RequiredFieldValidator1.IsValid && this.RegularExpressionValidator1.IsValid)
                {
                    this.TextBox1.Text = "ok";
                }
            }
        }
    }要是你还不对,那就 无语了!
      

  8.   


    谢谢♂风车车.Net,您没有理解我的意思哦,我是想在.cs文件中动态控制ValidationExpression属性,而不是在HTML中~~~~