找回密码
 立即注册
搜索
查看: 128|回复: 0

【转帖】使用 ASP.NET 的验证控件

[复制链接]

707

主题

1534

回帖

2970

积分

荣誉版主

积分
2970
发表于 2004-3-4 18:08:23 | 显示全部楼层 |阅读模式
摘要
ASP.NET功能强大的一种体现就是具有丰富的Web控件,这里我们谈谈其中的一种—验证控件。它总结了各种Web数据校验方式,设计成了今天这种通用的ASP.NET控件形式。

--------------------------------------------------------------------------------

目录
1. 验证控件简介
2. 验证控件的使用方法
3. 小结

--------------------------------------------------------------------------------

1. 验证控件简介
顾名思义,验证控件就是校验用户输入数据正确性的控件,如用户在文本框中输入数据后,便显示一条提示信息,表明了校验的数据是不合法的。验证过程既可以在服务器上执行,也可以在客户机上执行,在客户端运行的校验代码是数据提交之前被执行的,因此可以提高程序的性能。ASP.NET的验证控件可以进行多种校验,如数据范围检查、数据间的比较和自定义校验等等,下面的内容将会逐一介绍这些验证控件。

--------------------------------------------------------------------------------

2. 验证控件的使用方法
① RequiredFieldValidator控件
当页面上的控件要求必须输入数据时,RequiredFieldValidator就起作用了,ControlToValidate属性选择需要验证的控件,而ErrorMessage属性则是校验不合法后显示的错误提示信息。
  1. <HTML>
  2.   <HEAD>
  3.     <title>RequiredFieldValidator Example</title>
  4.   </HEAD>
  5. <BODY>
  6.   <form id="Form1" runat="server">
  7.     Name:
  8.     <asp:TextBox id="TextBox1" runat="server" ></asp:TextBox>
  9.     <asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server"
  10. ErrorMessage="Please enter your name" ControlToValidate="TextBox1"></asp:RequiredFieldValidator>
  11.     <asp:Button id="Button1"  runat="server" Text="Button"></asp:Button>
  12.   </form>
  13. </BODY>
  14. </HTML>
复制代码

②CompareValidator控件
CompareValidator控件是用来比较两个输入控件之间的数据一致性的,同时也可以用来校验控件中内容的数据类型:如整形、字符串型等。ControlToCompare和ControlToValidate属性用来设置进行比较的两个控件。
  1. <HTML>
  2.   <HEAD>
  3.     <title>CompareValidator Example</title>
  4.   </HEAD>
  5. <BODY>
  6.   <form id="Form1" runat="server">
  7.     <P>Password:
  8.     <asp:TextBox id="txtPwd" runat="server" TextMode="Password"></asp:TextBox><BR>
  9.     Confirm:
  10.     <asp:TextBox id="TxtCfm" runat="server" TextMode="Password"></asp:TextBox></P>
  11.     <P>
  12.     <asp:Button id="Button2" runat="server" Text="Button"></asp:Button>
  13.     <asp:CompareValidator id="CompareValidator1" runat="server" ErrorMessage="Password Error!"
  14.      ControlToValidate="TxtCfm" ControlToCompare="txtPwd"></asp:CompareValidator></P>
  15.   </form>
  16. </BODY>
  17. </HTML>
复制代码

③RangeValidator控件
RangeValidator控件可以用来判断用户输入的值是否在某一特定范围内,属性MaximumValue和MinimumValue用来设定范围的最大和最小值。
  1. <HTML>
  2.   <HEAD>
  3.     <title>RangeValidator Example</title>
  4.   </HEAD>
  5. <BODY>
  6.   <form id="Form1" runat="server">
  7.   <P>Age:
  8.   <asp:TextBox id="TxtAge" runat="server"></asp:TextBox>
  9.   <asp:RangeValidator id="RangeValidator1" runat="server" ControlToValidate="TxtAge"
  10.    ErrorMessage="Age Error!" MaximumValue="99" MinimumValue="1"></asp:RangeValidator></P>
  11.   </form>
  12. </BODY>
  13. </HTML>
复制代码

④RegularExpressionValidator控件
RegularExpressionValidator控件可以判断用户输入的表达式是否正确,如电话号码、邮编、URL等,ControlToValidate属性选择需要验证的控件,ValidationExpression属性则编写需要验证的表达式的样式,下面的例子就是一段校验邮编的代码。
  1. <HTML>
  2.   <HEAD>
  3.     <title>RegularExpressionValidator Example</title>
  4.   </HEAD>
  5. <BODY>
  6.   <form id="Form1" runat="server">
  7.   <P>Postal Code:
  8.   <asp:TextBox id="TxtPostalCode" runat="server"></asp:TextBox>
  9.   <asp:RegularExpressionValidator id="RegularExpressionValidator1" runat="server"
  10.        ControlToValidate="TxtPostalCode" ErrorMessage="Postal Code Error!"   
  11.        ValidationExpression="\d6}"></asp:RegularExpressionValidator></P>
  12.   </form>
  13. </BODY>
  14. </HTML>
复制代码

⑤CustomValidator控件
CustomValidator控件用于执行用户自定义的验证,这种校验既可以是服务器端的也可以是客户端的,下面的代码就是使用客户端验证邮编的例子。
  1. <HTML>
  2.   <HEAD>
  3.     <title>CustomValidator Example</title>
  4.   </HEAD>
  5. <BODY>
  6.   <form id="Form1" runat="server">
  7.     <P>Postal Code:
  8.     <asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
  9.     <asp:CustomValidator id="CustomValidator1" runat="server" ControlToValidate="TextBox1"  
  10.          ErrorMessage="CustomValidator"  ClientValidationFunction="ClientValidate">
  11.     </asp:CustomValidator></P>
  12.   </form>
  13. </BODY>
  14. </HTML>
  15. <script language="vbscript">
  16.    Sub ClientValidate(source, arguments)
  17.       If isnumeric(arguments.Value ) and len(arguments.Value)=6 Then
  18.          arguments.IsValid=true
  19.       Else
  20.          arguments.IsValid=false
  21.       End If
  22.    End Sub
  23. </script>
复制代码

⑥ValidationSummary控件
这个控件会将页面中所有的校验错误输出为一个列表,列表的显示方式由DisplayMode属性设置。
  1. <HTML>
  2.   <HEAD>
  3.     <title>ValidationSummary Example</title>
  4.   </HEAD>
  5. <body>
  6.   <form id="Form1" runat="server">
  7.   <P>Age:
  8.   <asp:TextBox id="TxtAge" runat="server"></asp:TextBox>
  9.   <asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server"
  10. ControlToValidate="TxtAge" ErrorMessage="Age Error!" Display="None"></asp:RequiredFieldValidator><BR>
  11.   Postal Code:
  12.   <asp:TextBox id="TxtPostalCode" runat="server"></asp:TextBox>
  13.   <asp:RequiredFieldValidator id="RequiredFieldValidator2" runat="server"
  14. ControlToValidate="TxtPostalCode" ErrorMessage="Postal Code Error!"
  15. Display="None"></asp:RequiredFieldValidator></P>
  16.   <P>
  17.   <asp:Button id="Button1" runat="server" Text="Button"></asp:Button></P>
  18.   <P>
  19.   <asp:ValidationSummary id="ValidationSummary1" runat="server"
  20.    HeaderText="You must enter a value in the following fields:"></asp:ValidationSummary></P>
  21.   </form>
  22. </body>
  23. </HTML>
复制代码


3. 小结
以上内容仅是ASP.NET验证控件的简单介绍,使用这些控件熟练后便可以缩短开发时间,更能够省去大量的编写JavaScript的工作。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|海浩社区

GMT+8, 2025-9-15 01:14 , Processed in 0.076928 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表