如果用户运行的是MicroSoft Internet Explore 4.0或以后的版本(它们都支持DHTML)的浏览器,这些控件就会生成JavaScript代码,并在浏览器中运行。假如用户使用的是老版本的浏览器,校验控件就会生成服务器端的代码。关键在于构建Web窗体的开发人员没有必要关心这个问题。所有浏览器版本检查和代码生成都已经内置到校验器控件中。开发人员只需要把校验控件拖放到Web窗体中,设置其属性,并指定要执行的校验规则,要显示的任何错误信息即可。广州网站建设
表5-1 ASP.NET验证控件
| 验 证 类 型 | 使用的控件 | 描 述 |
| 必选项 |
必需字段验证 RequiredFieldValidator |
验证一个必填字段,如果这个字段没填, 那么,将不能提交信息 |
| 与某值的比较 |
比较验证控件 CompareValidator |
比较验证:将用户输入与一个常数值或者 另一个控件或特定数据类型的值进行比较 (使用小于、等于或大于等比较运算符), 同时也可以用来校验控件中内容的数据类型 (如整形、字符串型等)。如密码和确认密码 两个字段是否相等 |
| 范围检查 |
范围验证控件 RangeValidator |
范围验证:RangeValidator控件可以用来判 断用户输入的值是否在某一特定范围内。 可以检查数字对、字母对和日期对限定 的范围。属性MaximumValue和MinimumValue 用来设定范围的最大和最小值 |
| 模式匹配 |
正则表达式验证控件 RegularExpressionValidator |
正则表达式验证:它根据正则表达式来验证 用户输入字段的格式是否合法,如电子 邮件、身份证、电话号码等。ControlToValidate 属性选择需要验证的控件,ValidationExpression 属性则编写需要验证的表达式的样式 |
| 用户定义 |
用户定义验证控件 CustomValidator |
使用开发人员自己编写的验证逻辑检查用户输入。 此类验证使开发人员能够检查在运行时派 生的值。在运行定制的客户端JavaScript或 VBScript函数时,可以使用这个控件 |
| 验证汇总 |
验证总结控件 ValidationSummary |
ValidationSummary验证总结控件:该控件不 执行验证,但该控件将本页所有验证控件的验 证错误信息汇总为一个列表并集中显示,列 表的显示方式由DisplayMode属性设置 |
ASP.NET 3.5有6个在Web站点中进行有效性验证的控件。其中有5个控件用来执行实际有效性验证,而最后一个控件ValidationSummary用来向用户提供页面中出现的错误的反馈信息。在VWD 2008【工具箱】的【验证】类别中可以找到这些控件,如图5-1所示。广州网站设计
![]() |
| 图5-1 验证控件 |
有效性验证控件共有的以及使用有效性验证控件时常要用到的属性如表5-2所示。广州网站设计
表5-2 有效性验证控件共有的属性
| 属 性 | 描 述 |
| Display |
这个属性确定隐藏的错误消息是否占用空间。 如果将Display设置为Static,错误消息就会 占用屏幕空间,即使当隐藏时也是如此 |
| CssClass | 这个属性允许设置应用到错误消息文本的CSS类 |
| ErrorMessage |
这个属性引用用在ValidationSummary控件中的 有效性验证控件的错误消息。当Text属性为空时, 也用ErrorMessage值作为出现在页面上的文本 |
| Text |
Text属性用作有效性验证控件显示在页面上的文本。 它可以有一个星号(*),表示错误或必需的字段, 或者像“Please enter your name.”这样的文本 |
| ControlToValidate | 这个属性包含需要验证有效性的控件的ID |
| EnableClientScript |
这个属性取得或设置一个设置值,确定控件是否提 供客户机上的有效性验证。默认值为True |
| SetFocusOnError |
这个属性确定客户端脚本是否将焦点放在生成错误的第 一个控件上。默认情况下这个设置是False |
| ValidationGroup |
有效性验证控件可以组合在一起,允许针对选 中的控件进行有效性验证。所有名为ValidationGroup 的控件都会被同时检查,即不会检查不是这个控件组 的一部分的控件。比如,假设有一个逻辑页面,其中有 一个Login按钮,以及输入用户名和口令的字段。同一个 页面也可能包含允许搜索站点的搜索框。使用ValidationGroup, 就可以让Login按钮验证用户名与口令框的有效性,而搜索 按钮仅触发搜索框的有效性验证 |
| IsValid |
通常在设计时不会设置这个属性,不过在运行时它提供了 关于有没有通过有效性验证测试的信息 |
上述验证控件分别实现不同的功能,下面分别对上述控件进行介绍。
必需字段验证(RequiredFieldValidator)用于保证该字段不为空。RequiredFieldValidator控件的功能非常多,不仅支持对TextBox控件的验证,还支持DropDownList控件的验证。RequiredFieldValidator控件有两个主要属性。
ErrorMessage属性:设置错误信息。
ControlToValidate属性:内容为待校验的控件ID。
比较验证控件(CompareValidator)用于比较两个控件中的输入是否相等,这是非常有用的一个验证控件,读者常见的会员注册程序中通常都包含"密码输入"和"再次输入密码"两个步骤,这时便可以用到CompareValidator控件。CompareValidator控件的主要属性如下。
ControlToCompare属性:参加比较的目标控件。
ControlToValidate属性:参加比较的源控件。
Type属性:规定用于比较和验证的数据类型,有5种,分别为String、Integer、Double、Currency和Date。
Operator属性:用于表示比较的方法,有如下几种,分别为Equal、NotEqual、GreatThan、GreatThanEqual、LessThan、LessThanEqual和DataTypeCheck。可以看到,除了前文中使用的相等的比较之外,还有不等于、大于、大于等于、小于、小于等于、类型检查等比较方法。因此,CompareValidate控件的使用非常灵活。
ValueToCompare属性:要比较的值。这个属性允许定义一个要比较的常量值。它通常用在必须输入Yes这样的单词的协议中,表示同意某些条件。只要将ValueToCompare设置为单词Yes,并将ControlToValidate设置为要验证有效性的控件,就可以了。当设置了这个属性时,请确保清除ControlToCompare属性,否则的话会优先采用ControlToCompare属性。
范围验证(RangeValidation)控件用于限定用户输入数据的有效范围。RangeValidation控件也非常实用,如限制输入的年龄等场景可以经常见到。RangeValidation控件的主要属性如下。
ControlToValidate属性:要验证的控件名称。
MinimumValue属性:确定可接受值的最小值。
MaximumValue属性:确定可接受值的最大值。
ValidateExpression属性:验证格式规则。
Text属性:未通过验证时显示的信息。
Type属性:要比较和验证的数据类型,有Currency、Date、Double、Integer和String。
正则表达式验证控件(RegularExpressionValidator)是一种较为灵活的验证方式,可以借由正则表达式的强大功能,实现对复杂字符串的验证功能。Visual Web Developer 2008配备了几个内置表达式,使验证电子邮件地址及邮政编码等值的有效性变得比较容易。其主要属性如下。
ControlToValidate属性:要验证的控件名称。
ValidationExpression属性:验证格式规则。它有很多正则表达式可以设置,因此它能完成许多复杂的功能。
Text属性:未通过验证时显示的信息。
Type属性:要比较和验证的数据类型,有Currency、Date、Double、Integer和String。
自定义验证(CustomValidator)控件主要用于以上验证控件都不适合的场合,可以由开发人员自行编写验证功能。CustomValidator控件的主要属性如下。
ControlToValidate属性:要验证的控件名称。
OnServerValidate属性:服务器端执行验证的方法名。
Display属性:错误信息的呈现方式;None为不显示错误信息、Dynamic为动态产生错误提示信息、Static为静态隐藏错误提示信息。
ClientValidateFunction属性:ClientValidateFunction属性的内容为开发人员自己编写的某方法名。客户端执行验证的方法名。
验证总结(ValidationSummary)控件属于一个显示控件,本身并不参与用户输入的验证,只负责收集当前页面的验证错误信息(ErrorMessage),并以集合的形式显示。
执行客户端的用户校验,可以使用上面介绍的校验控件来完成。在使用一个Validator控件时,将Validator控件的ErrorMessage属性设置为要显示的错误信息,将ControlToValidate属性设置为需要验证的控件。验证EnableClientScript属性已设为True。
Text和ErrorMessage属性之间的区别。虽说它们都可以用来以错误消息的形式向用户提供反馈。但是当与ValidationSummary控件结合起来使用时,两者之间就有一个小区别。当同时设置这两个属性时,Validation控件显示Text属性,而ValidationSummary显示ErrorMessage。
广州网站设计




