【ASP.NET】基础补习之验证控件
在做Web应用程序的时候,因为用户有可能输入各式各样的信息,经常需要大量的数据验证,如果交给服务器去验证的话,无疑会增加服务器的压力,而且也容易造成程序的异常。甚至导致网站出现一些安全问题。因此我们在将这些信息保存到网站的数据库之前,要对这些用户所输入的信息进行数据的合法性校验,以便后面的程序可以安全顺利的执行。
ASP.NET提供了六种验证控件,可以实现以上功能。
- RequiredFieldValidator(必须字段验证)
- CompareValidator(比较验证)
- RangeValidator(范围验证)
- RegularExpressionValidator(正则表达式验证)
- CustomValidator(自定义验证)
- ValidationSummary(验证总结)
验证控件基本成员:
- ControlToValidate – 要进行验证控件ID
- ErrorMessage – 验证失败时,出现的错误信息
- IsValid – 返回布尔值判断控件是否有效
- Validate – 验证控件的方法,同时改变IsValid属性
- Display– 错误信息的显示方式
- None (控件的错误信息在页面中占有肯定位置)
- Static (控件的错误信息出现时才占用页面控件.)
- Dynamic (错误出现时不显示.)
The RequiredFieldValidation Control
用于检查是否有输入值。用法如下:
Required field: <asp:textbox id="textbox1" runat="server"/><asp:RequiredFieldValidator id="valRequired" runat="server" ControlToValidate="textbox1"
ErrorMessage="* You must enter a value into textbox1" Display="dynamic">*
</asp:RequiredFieldValidator>
以上例子,实现当用户在textbox1中输入数据后,提交才会有效,否则激活验证控件显示错误信息。
The CompareValidator Control
按设定比较两个输入。CompareValidator可以用来验证注册时对密码的确认等。法如下:
Textbox 1: <asp:textbox id="textbox2" runat="server"/><br />Textbox 2: <asp:textbox id="textbox3" runat="server"/><br />
<asp:CompareValidator id="valCompare" runat="server"
ControlToValidate="textbox1" ControlToCompare="textbox2"
Operator="Equals"
ErrorMessage="* You must enter the same values into textbox 1 and textbox 2"
Display="dynamic">*
</asp:CompareValidator>
上面例子验证textbox1和textbox2必须一致,两个控件根据Operator属性进行比较。Operator属性可以设定为Equal, GreterThan, LessThanOrEqual等。CompareValidator的另一个用法是和一个固定值比较:
Field: <asp:textbox id="textbox4" runat="server"/>
<asp:CompareValidator id="CompareValidator1" runat="server" ControlToValidate="textbox1"
ValueToCompare="50"
Type="Integer"
Operator="GreaterThan"
ErrorMessage="* You must enter the a number greater than 50" Display="dynamic">*
</asp:CompareValidator>
数据类型可以是Currency, Double, Date, Integer , String。String是默认属性。
The RangeValidator Control
验证输入是否在指定的范围。有三个必要的属性MaximumValue, MinimumValue, 和Type.
Enter a date from 1998:<asp:textbox id="textbox5" runat="server"/>
<asp:RangeValidator id="valRange" runat="server"
ControlToValidate="textbox1"
MaximumValue="12/31/1998"
MinimumValue="1/1/1998"
Type="Date"
ErrorMessage="* The date must be between 1/1/1998 and 12/13/1998" Display="static">*</asp:RangeValidator>
The RegularExpressionValidator Control
根据正则表达式验证。利用正则表达式可以灵活的对控件进行验证。正则表达式是一个优秀程序员必须掌握的技能之一。有关正则表的式的学习请参考
http://www.regexlab.com/zh/regref.htm
下面是一个简单的验证邮箱地址格式的例子:
E-mail: <asp:textbox id="textbox6" runat="server"/><asp:RegularExpressionValidator id="valRegEx" runat="server"
ControlToValidate="textbox1"
ValidationExpression=".*@.*\..*"
ErrorMessage="* Your entry is not a valid e-mail address."
display="dynamic">*
</asp:RegularExpressionValidator>
The CustomValidator Control
自定义验证控件,该控件用自定义的函数界定验证方式。ClientValidationFunction指定一个包含在html中的客户端验证函数。OnServerValidate是服务器端验证函数。
Field: <asp:textbox id="textbox7" runat="server"><asp:CustomValidator id="valCustom" runat="server"
ControlToValidate="textbox1"
ClientValidationFunction="ClientValidate"
OnServerValidate="ServerValidate"
ErrorMessage="*This box is not valid" dispaly="dynamic">*
</asp:CustomValidator>
<script language="Javascript">
<!--
/* ... Code goes here ... */
-->
</script>
服务器验证函数
Sub ServerValidate (objSource As Object, objArgs As ServerValidateEventsArgs)
' Code goes here
End Sub
Validation Summary
总结验证结果。显示 Web 页上所有验证错误的列表。她的用法如下:
<asp:ValidationSummary id="valSummary" runat="server"HeaderText="Errors:"
ShowSummary="true" DisplayMode="List" />
validation summary控件收集本页的所有验证错误信息,并可以将它们组织以后再显示出来。
(ShowMessageBox="True"时)
相关源码
本作品采用 知识共享署名-非商业性使用 2.5 中国大陆许可协议进行许可。 |