快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
中。这些类之间的相关性不允许任意实现IValidator接口。对于实现自定义验证控件,推荐的方法是继承BaseValidator类。

BaseValidator是验证框架中最为重要的部分。该类派生自Label类,并且实现IValidator接口。无论是内置验证控件,还是自定义验证控件,都必须派生自BaseValidator类。该类实现所有验证控件都必须实现的通用属性。下面介绍了一些常用验证属性。

·ControlToValidate属性

该属性值为String类型,其用于验证控件将计算的输入控件的编程ID。如果此为非法ID,则引发异常。

·Display属性

该属性值为ValidatorDisplay类型,其用于指定的验证控件的显示行为。此属性可以为下列值之一:(1)None—验证控件从不内联显示。如果希望仅在ValidationSummary控件中显示错误信息,则使用此选项。(2)Static—如果验证失败,验证控件显示错误信息。即使输入控件通过了验证,也在Web页中为每个错误信息分配空间。当验证控件显示其错误信息时,页面布局不变。由于页面布局是静态的,同一输入控件的多个验证控件必须占据页上的不同物理位置。(3)Dynamic—如果验证失败,验证控件显示错误信息。当验证失败时,在页上动态分配错误信息的空间。这允许多个验证控件共享页面上的同一个物理位置。注意:由于验证控件的空间是动态创建的,所以页面的物理布局会发生更改。为了防止页面布局在验证控件变得可见时更改,必须调整包含验证控件的HTML元素的大小,使其大得足以容纳验证控件的最大大小。

·ErrorMessage属性

该属性值为String类型,其用于当验证失败时,在ValidationSummary控件中显示的错误信息。如果未设置验证控件的Text属性,则验证失败时,验证控件中仍显示此文本。ErrorMessage属性通常用于为验证控件和ValidationSummary控件提供各种消息。注意:此属性不会将特殊字符转换为HTML实体。例如,小于号字符(<)不转换为&lt;。这允许将HTML元素(如<IMG>元素)嵌入到该属性的值中

·IsValid属性

该属性值为bool类型,其用于指示ControlToValidate属性所指定的输入控件是否被确定为有效。

由该类派生的验证控件,可以不必再次实现以上通用属性,而只要根据应用需要另外定义一些属性和验证逻辑即可。例如,对于RangeValidator控件,除具有以上通用属性外,还定义了用于限定取值范围的MinimumValue和MaximumValue属性,以及用于指定要比较的值的数据类型的Type属性。此外,该控件的验证逻辑是通过重写BaseValidator.EvaluateIsValid方法实现的。由此看来,BaseValidator简化了自定义验证控件的实现过程,为控件开发人员提供了方便。

CustomValidator派生自BaseValidator类,它是5个内置验证控件之一。通常情况下,页面开发者使用CustomValidator来添加自定义的验证逻辑,这只要通过定义ServerValidate事件的事件处理方法以及ClientValidationFunction属性来完成。由于CustomValidator不提供复用机制(访问属性为public),因此自定义验证控件不能自该类派生。

(2)客户端实现机制

上文介绍了为实现验证控件,开发人员必须掌握的3个核心对象。掌握这些对象的定义和使用方法对于开发验证控件具有重要意义。通过它们,我们可以在服务器验证中添加验证逻辑。当页面回传时,验证目标控件的输入数据被发往服务器端参与验证逻辑。如果输入数据不能满足验证条件,那么页面将重新呈现,并且要求用户再次进行输入。整个验证过程可能需要多次往返,这样必然降低应用程序的易用性,并给服务器增加负担。

为了解决以上问题,开发人员必须学会为验证控件添加客户端验证机制。如果用户的浏览器支持DHTML和JavaScript技术,并且页面和验证控件的EnableClientScript均设置为true,那么就可以在客户端执行验证

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号