ASP.NET六大常用验证控件的使用方法
ASP.NET功能强大的一种体现就是具有丰富的Web控件,这里我们谈谈其中的一种—验证控件
。它总结了各种Web数据校验方式,设计成了今天这种通用的ASP.NET控件形式。
ASP.NET公有六种验证控件,分别如下:
控件名 功能描叙
RequiredFieldValidator(必须字段验证) 用于检查是否有输入值
CompareValidator(比较验证) 按设定比较两个输入
RangeValidator(范围验证) 输入是否在指定范围
RegularExpressionValidator(正则表达式验证) 正则表达式验证控件
CustomValidator(自定义验证) 自定义验证控件
ValidationSummary(验证总结) 总结验证结果
--------------------------------------------------------------------------------
目录
1. 验证控件简介
2. 验证控件的使用方法
--------------------------------------------------------------------------------
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"11 ControlToValidate="TextBox1"></asp:RequiredFieldValidator>12 <asp:Button id="Button1" runat="server" Text="Button"></asp:Button>13 </form>14 </BODY>15 </HTML>
在以上标准代码中:
ControlToValidate:表示要进行检查控件ID;
ErrorMessage:表示当检查不合法时,出现的错误信息;
Display:错误信息的显示方式;Static表示控件的错误信息在页面中占有肯定位置;
Dymatic表示控件错误信息出现时才占用页面控件;None表示错误出现时不显示,但是可以在
ValidatorSummary中显示;
占位符:表示Display为Static时,错误信息占有"占位符"那么大的页面空间
②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" 9 TextMode="Password"></asp:TextBox><BR>10 Confirm:11 <asp:TextBox id="TxtCfm" runat="server"12 TextMode="Password"></asp:TextBox></P>13 <P>14 <asp:Button id="Button2" runat="server" Text="Button"></asp:Button>15 <asp:CompareValidator id="CompareValidator1" runat="server"16 ErrorMessage="Password Error!" 17 ControlToValidate="TxtCfm"18 ControlToCompare="txtPwd"></asp:CompareValidator></P>19 </form>20 </BODY>21 </HTML>
比较控件比较两个控件的输入是否符合程序设定,大家不要把比较仅仅理解为"相等",尽管
相等是用的最多的,其实,这里的比较包括范围很广,大家看标准代码就会明白。
比较控件的标准代码如下:
在以上标准代码中:
Type表示要比较的控件的数据类型;
Operator表示比较操作(也就是刚才说的为什么比较不仅仅是"相等"的原因),这里,
比较有7种方式;
其他属性和RequiredFieldValidator相同;
在这里,要注意ControlToValidate和ControlToCompare的区别,如果operate为
GreateThan,那么,必须ControlToCompare大于ControlToValidate才是合法的,这下,应该
明白它们两者的意义了吧?例子程序请参考RequiredFieldValidator控件,对照标准代码自
己设计。
③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"10 ControlToValidate="TxtAge" 11 ErrorMessage="Age Error!" MaximumValue="99"12 MinimumValue="1"></asp:RangeValidator></P>13 </form>14 </BODY>15 </HTML>
用MinimumValue和MaximumValue来界定控件输入值得范围,用type来定义控件输入值的类型
。
④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>
在以上标准代码中,ValidationExpression是重点,现在来看看它的构造:
在ValidationExpression中,不同的字符表示不同的含义:
"."表示任意字符;
"*"表示和其他表达式一起,表示容易组合;
"[A-Z]"表示任意大写字母;
"d"表示容易一个数字;
注意,在以上表达式中,引号不包括在内;
举例:
正则表达式:".*[A-Z]"表示数字开头的任意字符组合其后接一个大写字母
⑤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"10 ControlToValidate="TextBox1" 11 ErrorMessage="CustomValidator" 12 ClientValidationFunction="ClientValidate">13 </asp:CustomValidator></P>14 </form>15 </BODY>16 </HTML>17 <script language="vbscript">18 Sub ClientValidate(source, arguments)19 If isnumeric(arguments.Value ) and len(arguments.Value)=6 Then20 arguments.IsValid=true21 Else22 arguments.IsValid=false23 End If24 End Sub25 </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!"11 Display="None"></asp:RequiredFieldValidator><BR>12 Postal Code:13 <asp:TextBox id="TxtPostalCode" runat="server"></asp:TextBox>14 <asp:RequiredFieldValidator id="RequiredFieldValidator2" runat="server" 15 ControlToValidate="TxtPostalCode" ErrorMessage="Postal Code Error!" 16 Display="None"></asp:RequiredFieldValidator></P>17 <P>18 <asp:Button id="Button1" runat="server" Text="Button"></asp:Button></P>19 <P>20 <asp:ValidationSummary id="ValidationSummary1" runat="server" 21 HeaderText="You must enter a value in the following22 fields:"></asp:ValidationSummary></P>23 </form>24 </body>25 </HTML>