唐山网站建设

设为主页 加入收藏 繁體中文

ASP.NET立即上手教程(6)

核心提示:网络构成框架包括1套易用而功能强大的用于验证的服务器控件,用来检查输进表单的毛病,并且在必要的时候,向用户显示提示信息。

表单验证服务器控件

验证先容

网络构成框架包括1套易用而功能强大的用于验证的服务器控件,用来检查输进表单的毛病,并且在必要的时候,向用户显示提示信息。将验证控件添加到设计骗局表格,就像添加其他服务器控件1样。验证控件有不同的验证类型,例如范围检查或模式匹配,添加1个RequiredFieldValidator 控件可以保证用户不能跳过某1个要求输进内容的字段。你可以对1个输进控件组合若干个验证控件。例如,你可能要求某1字段不能为空,并且必须输进某1个范围的值。验证控件与服务器控件的有限子集协同工作。也就是说,对不同的控件,可能需要验证不同属性的值。

验证控件类型

最简单的验证表单是要求输进字段。不管用户在字段中输进了任何值,它就是验证通过的。假设页面中所有的字段都验证通过,那末页面也是验证通过的(page is valid)。下面的例子说明了RequiredFieldValidator验证控件的使用。

特定的验证情况需要不同的验证控件,例如范围检查或模式匹配。

客户端验证

1般来讲,验证控间总是在服务器端履行验证检查。 但是,假设用户正在使用1个支持 DHTML 的浏览器工作,验证控间也能使用客户端脚本来验证。藉由客户端确认,当表单提交给服务器的时候,客户真个任何检测的毛病都可以发现。当任何1个验证控间发现毛病的时候,提交到服务器的表单都会取消,同时显示验证控间的Text 属性。这就答利用户在表单提交到服务器之前,校订输进的毛病。当包括毛病的字段失往焦点的时候,该字段马上会被重新验证。这样就给用户提供了1种丰富的、交互式的验证进程。

留意:web forms页框架总是在服务器端履行验证,即使验证已在客户端履行也是如此。这有助于避免冒名顶替和预订事务来通过验证。

默许情况下答应客户端验证。假设客户端条件答应,高版本浏览器验证模式将自动履行。要想制止客户端验证,设置页面的 ClientTarget 属性为"Downlevel"("Uplevel" 强迫客户端验证)

显示验证毛病信息

当用户的输进开始处理(例如,当表单已提交),Web Forms页面框架传递用户的输进到相干联的验证控件。验证控件测试用户的输进,并且设置属性来标志输进是否是通过验证测试。所有的验证控件运行终了以后,才设置页面的IsValid属性。假设任何1个验证控件显示了验证失败,全部页面的验证也是无效的。

假设验证控件监测到毛病,该控件或页面上的ValidationSummary 控件就会在页面上显示1条毛病提示信息。ValidationSummary 控件显示毛病提示的条件是页面的IsValid即是false。(也就是说,任何1个验证控件没有通过,都会激活ValidationSummary),它可以监测到每1个验证控件的验证毛病,并且把所有的毛病1次全部显示出来。下面的例子演示了ValidationSummary控件如何进行毛病提示的。

使用比较验证控件CompareValidator

CompareValidator服务器验证控件用来比较两个控件的值。它使用3个关键属性来进行它的验证。ControlToValidate 和 ControlToCompare 包括要比较的值,Operator 定义了要进行的比较类型---例如,即是或不即是等等。CompareValidator通过对表达式求值来履行验证,就象下面这样:

( ControlToValidate ControlToCompare )

假设表达式的值为true,验证结果为通过。

下面的例子说明了如何使用 CompareValidator 控件

使用范围验证控件 RangeValidator

RangeValidator 服务器控件测试输进值是否是在1个给定范围之内。RangeValidator 使用3个关键属性来履行验证。 ControlToValidate 包括验证的对象,MinimumValue 和 MaximumValue 定义了有效范围的最小值和最大值。

下面的例子显示了如何使用RangeValidator 控件。

使用正则表达式验证控件RegularExpressionValidator

RegularExpressionValidator 服务器控件用来检查用户输进是否是与正则表达式定义的模式匹配。这个控件答应你检查可预感的字符串系列,例如社会保障号码、电子邮件地址、电话号码和邮政编码等等。

RegularExpressionValidator 使用两个关键属性来履行验证。ControlToValidate 包括要验证的控件对象, ValidationExpression 包括用来匹配的正则表达式。

原教材对正则表达式说得比较少,这里我来补充1下:

正则表达式是1种功能强大的字符串定义规则,例如dos下熟习的“*” 和“?” 他最早在unix中引进。在asp.net中,他的格式是[可接受字符]{ 范围}。举例来讲,[a-z]{ 3,7}表示最少含有3个字符,最多含有7个字符,其中字符只能是’a’~’z’的范围,如”krpam”是正当的,而”12fe3”或”5W”是不正当的。

在[]里面除?-?的定义之外,也能够直接写出可接受的字符,例如[ourasp]表示只接受’o’、’u’、’r’、’a’、’s’、’p’这几个字符,而^表示反集合,例如[^aurasp],表示除’o’、’u’、’r’、’a’、’s’、’p’之外,任何字符都接受。假设表示可接受任意字符,使用“.”来表示。例如, .{ 0,} 表示可以接受任意多个任意字符。

在{ }里面,除常常使用的{ 3}、{ 2⑴3}这样的格式之外,还有以下常常使用的格式:{ n,} 表示最少输进n个字符。

“|” 符号表示or(或),例如[a-zA-Z]{ 3}|[0.9]{ 3}表示可接受的字符是3个英文字母或3个数字字符。请留意他与[a-zA-Z0⑼]{ 3}的辨别。为了浏览上的方便,我们通常会把含有“|”符号的字符串放在()中,例如([a-zA-Z]{ 3}|[0.9]{ 3})上述的[]{ }.()|都是正则表达式中的特殊符号。假设希看可接受的字符串中包括这些字符,必须在这些字符前面加上斜线 \。例如,“\.{ 3}”,表示必须输进3个”.”。

下面的例子演示如何使用 ValidationExpression控件。

使用自定义验证控件 Custom Validation

CustomValidator 服务器控件调用用户自定义函数来履行1个标准验证控件没法处理得验证。该自定义函数既可以在服务器端履行,也能够在客户端脚本(如VBscript 或JScript)。对客户端自定义验证,自定义函数名称必须在ClientValidationFunction 属性中明确指出。自定义函数必须使用这样的参数格式:

function myvalidator(source, arguments)

留意 source 参数是客户端CustomValidator ,arguments参数是带有两个属性Value 和 IsValid的对象, Value 属性对象的值, IsValid 属性是1个布尔值,用来设置返回的验证结果。

对服务器端自定义验证,将你的自定义验证放置在验证控件的OnServerValidate 中。

下面的例子演示了如何使用CustomValidator 控件。

使用全部验证控件的例子

下面的例子演示了1个典型的注册表单,其中使用了本章讨论的所有验证控件

本章小结

1、验证控件可以用来检验Web Forms 页面的任何输进。

2、对1个给定的输进字段,可使用若干个验证控件来检验。

3、除服务器端验证之外,也能够使用客户端验证来进步form的可用性。

4、CustomValidator 控件可让用户自定义验证规则。

 

http://www.fw8.net/


TAG:属性,控件,字符,毛病,客户端
评论加载中...
内容:
评论者: 验证码: