• 15 高级验证控件


    • RegularExpressionValidator:  ValidationExpression属性为正则表达式,VS已内置了几个正则表达式,也可以自己写。
    • CustomValidator:自定义验证控件。当ASP.Net内置的验证控件无法满足要求的时候可以使用CustomValidator.
    1. CustomValidator有特别重要的属性或事件,一个是服务端验证事件,即它的ServerValidate;如果要在客户端验证,则它的属性为ClientValidationFunction,给此属性指定一个写好的函数名即可。
    2. ClientValidationFunction属性的函数的参数和ServerValidate事件是一样的,只是客户端的这个函数写在客户端的js中。否则只做服务端验证。
    3. 事件中有两个参数,一个为Source,是事件来源;另个参数为args,此参数会把用户输入的值传到args.value。如果args.isValid设置为True,则通过校验,否则不会通过。

    实例:

         1)验证一个邮箱格式是否正确。

          2)输入一个5-10位的数值

         3)输入一个值必须为1.

          4) 以上的都要输入值

        以上所述,前两个主要用到RegularExpressionValidator,设置它的ValidationExpression.第3个用到了CustomValidator验证控件,设定它的服务和客户端验证即可。当然也需要加上RequiredFieldValidator.

    aspx:

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
        <script type="text/javascript">
            function customerValidator(source, args) {
                args.IsValid = (args.Value == "1"); //与服务端参数等是一样的
          };
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        
            邮箱:&nbsp;&nbsp;&nbsp; 
            <asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
            <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
                ControlToValidate="txtEmail" ErrorMessage="邮箱格式不正确" 
                ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
                ControlToValidate="txtEmail" ErrorMessage="email不能为空"></asp:RequiredFieldValidator>
            <br />
            输入5-10位数值<asp:TextBox ID="txtint" runat="server"></asp:TextBox>
            <asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" 
                ControlToValidate="txtint" ErrorMessage="请输入数值5-10位" 
                ValidationExpression="\d{5,10}"></asp:RegularExpressionValidator>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
                ControlToValidate="txtint" ErrorMessage="数值不能为空"></asp:RequiredFieldValidator>
            <br />
            <br />
            <br />
            必须设定值为1&nbsp;&nbsp;
            <asp:TextBox ID="txtmust" runat="server"></asp:TextBox>
            <asp:CustomValidator ID="CustomValidator1" runat="server" 
                ControlToValidate="txtmust" ErrorMessage="输入的值必须为1" 
                onservervalidate="CustomValidator1_ServerValidate" ClientValidationFunction="customerValidator" 
                ></asp:CustomValidator>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" 
                ControlToValidate="txtmust" ErrorMessage="值不能为空"></asp:RequiredFieldValidator>
            <br />
            <br />
            <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
        
        </div>
        </form>
    </body>
    </html>

    cs:

      protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
            {
               
                Response.Write("你输入的值为: "+args.Value);
                args.IsValid = (args.Value == "1");
            }
    
            protected void Button1_Click(object sender, EventArgs e)
            {
                if (!IsValid)
                    return;
                Response.Write("已提交");
            }
  • 相关阅读:
    JavaWeb核心编程之(四.1)JSP
    一起来说 Vim 语
    你应该知道的基础 Git 命令
    Git 系列(五):三个 Git 图形化工具
    Git 系列(四):在 Git 中进行版本回退
    Git 系列(三):建立你的第一个 Git 仓库
    Git 系列(二):初步了解 Git
    Git 系列(一):什么是 Git
    JavaWeb核心编程之(三.6)HttpServlet
    多线程:子线程执行完成后通知主线程
  • 原文地址:https://www.cnblogs.com/yagzh2000/p/3130518.html
Copyright © 2020-2023  润新知