首页 / 网页编程 / ASP.NET / ASP.NET 2.0服务器控件之实现验证控件
ASP.NET 2.0服务器控件之实现验证控件2007-05-11 天极 金属边缘为了更好的创建交互式Web应用程序,加强应用程序安全性(例如,防止脚本入侵等),开发人员应该对用户输入的部分提供验证功能。过去,输入验证功能基本由自行编写的客户端脚本来完成这种实现方法既繁琐,又容易出现错误。随着技术的发展,ASP.NET技术通过提供一系列验证控件来克服这些缺点,例如,RequiredFieldValidator、CompareValidator、RangeValidator等。使用这些验证控件,开发人员可以向Web页面添加输入验证功能,例如定义验证规则、定义向用户显示的错误信息内容等。通常情况下,ASP.NET提供的验证控件可以满足大多数Web应用的需要,然而,在某些情况下,内置的验证控件还是无法完成应用需求对数据输入的特殊要求。为了弥补这个缺憾,ASP.NET 2.0定义了一个可以在控件开发中使用的可扩充验证框架。开发人员可以通过使用这个验证框架自行定义验证控件。本文将对实现验证控件的重要方面进行介绍,内容包括内置验证控件概述,验证框架等等。1.内置验证控件概述验证控件完成对输入数据进行验证的功能。通过将验证控件和输入控件关联,开发人员可以向Web页面添加输入验证功能。另外,还提供了自定义验证规则的方法和自定义错误信息的内容和显示方式等。本节将概括性介绍ASP.NET内置验证控件。ASP.NET 2.0共包含5个内置验证控件:RequiredFieldValidator、CompareValidator、RangeValidator、RegularExpressionValidator和CustomValidator,这些控件直接或者间接派生自System.Web.UI.WebControls.BaseValidator。每个验证控件执行特定类型的验证,并且当验证失败时显示自定义消息。下面简要介绍了这5个验证控件。(1)RequiredFieldValidator控件该控件用于确保被验证的控件中包含一个值。(2)CompareValidator控件该控件使用比较运算符(小于、等于、大于等)将用户输入与一个常量值或另一控件的属性值进行比较。(3)RangeValidator控件该控件用于检查用户的输入是否在指定的上下限内。可以检查数字对、字母字符对和日期对的范围。(4)RegularExpressionValidator控件该控件用于检查项与正则表达式定义的模式是否匹配。这种验证类型允许检查可预知的字符序列,如身份证号码、电子邮件地址、电话号码、邮政编码等中的字符序列。(5)CustomValidator控件该控件用于使用您自己编写的验证逻辑检查用户输入。这种验证类型允许检查在运行时导出的值。除以上内置验证控件外,ASP.NET 2.0还提供了一个用于显示错误信息概要的控件ValidationSummary。该控件的目的是将来自页上所有验证控件的错误信息,一起显示在一个位置,例如,一个消息框或者一个错误信息列表。ValidationSummary控件不执行验证,但是它可以和所有验证控件一起使用,更准确的说,ValidationSummary可以和上述5个内置验证控件以及自定义验证控件,共同完成验证功能。在Web页面中使用验证控件,我们需要注意以下几个关键的方面。首先,将验证控件与输入控件关联起来,然后,根据不同类型验证控件的特征定义相关属性。例如:所有验证控件都要通过ContrlToValidate属性进行关联设置,都必须通过ErrorMessage属性定义错误信息内容;对于范围检查控件RangeValidator来讲,必须定义MaximumValue和MinimumValue属性来指定有效范围的最小值和最大值;对于模式匹配控件RegularExpressionValidator来讲,必须使用ValidationExpression属性指定用于验证输入控件的正则表达式。以上介绍的使用方式,很可能使得一个输入控件关联多个验证控件,这在ASP.NET 2.0中是允许的。