zoukankan      html  css  js  c++  java
  • 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("已提交");
            }
  • 相关阅读:
    PAIRING WORKFLOW MANAGER 1.0 WITH SHAREPOINT 2013
    Education resources from Microsoft
    upgrade to sql server 2012
    ULSViewer sharepoint 2013 log viewer
    Top 10 Most Valuable Microsoft SharePoint 2010 Books
    讨论 Setsockopt选项
    使用 Alchemy 技术编译 C 语言程序为 Flex 可调用的 SWC
    Nagle's algorithm
    Nagle算法 TCP_NODELAY和TCP_CORK
    Design issues Sending small data segments over TCP with Winsock
  • 原文地址:https://www.cnblogs.com/yagzh2000/p/3130518.html
Copyright © 2011-2022 走看看