快速业务通道

ASP.NET 2.0服务器控件之实现验证控件

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
,则验证功能等效于ASP.NET 1.x中的验证功能。如果在多个控件中指定了多个验证组,则一定会显示多个验证摘要控件,因为一个验证摘要只显示一个组的验证错误。回发到服务器且当前具有CausesValidation属性的控件也引入了此ValidationGroup属性,该属性确定当控件导致回发时应当验证的控件组。如果未指定验证组,则会验证默认组,默认组由所有没有显式分配组的验证程序组成。

最后,一旦在Web页面中正确包含验证控件,那么开发人员就可以使用自己的代码来测试页或者单个验证控件的状态。例如,在使用输入数据之前来测试验证控件的IsValid属性。如果为true,表示输入数据有效;如果为false,表示输入错误,并显示错误信息。对于Web页面来讲,只有当所有验证控件的IsValid都为true,即所有输入数据都符合验证条件时,Page类的IsValid属性才设置为true,否则为false。另外,在页面级验证中,ASP.NET 2.0还提供了两个新方法来支持验证功能。一个是来自Page类的GetValidators方法,该方法将检索属于指定验证组的验证程序。还有一个也是来自Page类的Validate方法的重载,其允许采用验证组作为参数。

2.验证控件实现机制

通常情况下,使用ASP.NET 2.0的5个内置验证控件,可以满足多数应用程序的需要。然而,为了提高开发的灵活性,满足不同Web应用的需求,ASP.NET 2.0内置了一个可扩充的验证框架。该框架定义了服务器端和客户端的基本实现规则。开发人员可以使用这个可扩充的验证框架,根据应用需要设计自己的验证控件来实现新的设计规则。

(1)服务器端实现机制

并非所有的Web服务器控件都支持验证控件。可以使用验证控件进行验证的标准控件包括:TextBox、ListBox、DropDownList、RadioButtonList、HtmlInputText、HtmlInputFile、HtmlSelect和HtmlTextArea、FileUpload和HtmlInputPassword等。这些支持验证控件的控件有一个共同特征,即元数据中包含System.Web.UI.ValidationPropertyAttribute。ValidationPropertyAttribute定义了控件用于标识验证属性的元数据特性。除此之外,如果由以上控件派生的自定义控件类,需要支持验证,那么必须在控件类前定义ValidationPropertyAttribute,这样该控件才能作为验证目标控件。开发人员在实现自定义验证控件过程中,必须首先了解以上所介绍的验证目标控件内容,然后才能更好的开发控件。

为了实现自定义验证控件,ASP.NET 2.0提供了3个重要对象:(1)System.Web.UI.IValidator;(2)System.Web.UI.WebControls.BaseValidator;(3)System.Web.UI.WebControls.CustomValidator。以上三者之间联系紧密,由它们组成的验证框架具有很强的灵活性和可扩充性。IValidator接口是验证框架的基础,任何实现该接口的类都可以作为验证程序。BaseValidator是抽象基类,该类实现IValidator接口,并继承System.Web.UI.WebControls.Label控件。通常情况下,自定义验证控件都派生自该类。CustomValidator实际是一个验证控件,开发人员可以用它来添加自定义的验证逻辑。为了更好的说明验证框架,下面将逐一介绍以上3个对象。

IValidator接口的定义如下:

public interface Ivalidator
{
 string ErrorMessage {get; set;}
 bool IsValid {get; set;}
 void Validate();
}

IValidator接口的成员包括1个方法和2个属性。ErrorMessage属性用于获取或设置条件验证失败时生成的错误信息。IsValid属性当由类实现时,获取或设置一个值,通过该值指示用户在指定控件中输入的内容是否通过验证。Validate方法由类实现时,计算它检查的条件并更新IsValid属性。对于开发人员来讲,如果实现的是一个普通验证程序,而非验证控件,那么可以通过实现该接口来完成。其原因在于验证框架的实现分布在Page类、BaseValidator类和验证目标控件

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号