新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > .Net开发 > Asp.net教程 > 正文:ASP.NET 2.0服务器控件之实现验证控件

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

新客网 XKER.COM 2006-08-18 来源: 收藏本文


  · 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,那么就可以在客户端执行验证。客户端验证通过在向服务器发送用户输入前,检查用户输入、改变一些页面效果来增强验证过程。例如,通过在客户端检测输入错误,从而避免服务器端验证所需要的信息来回传递。服务器端验证总是要被执行的,这看起来好像是与客户端验证产生了重复,实际不然。出于安全考虑,如果某些用户通过手工提交恶意数据,而绕过客户端验证,那么服务器端验证的执行将对保护应用程序的安全性,甚至为服务器的安全性提供有力支持。

  在ASP.NET 2.0中,如果开发人员使用内置验证控件实现验证功能,那么ASP.NET 2.0将自动产生相关的JavaScript代码。如果开发人员查看相关HTML源代码,那么将会发现有些来自WebResource.axd的JavaScript文件链接。然而,我们是无法查看相关文件代码的。这一点与ASP.NET 1.x不同。在ASP.NET 1.x中,默认情况下,在目录“C:\Inetpub\wwwroot\aspnet_client\system_web\版本号”中包含一个WebUIValidation.js文件。该文件中包括了实现客户端验证的JavaScript代码。开发人员可以通过阅读这些代码来了解验证功能的具体实现方法。ASP.NET 2.0中没有存在相关的源代码文件,而是通过WebResource.axd等机制来实现。

  有关实现客户端验证的内容,主要涉及实现客户端功能等知识。这些内容在前面的文章中已经详细进行了讲解。有兴趣的读者可阅读有关文章。

  3. 小结

  本文主要介绍了内置验证控件,以及自定义验证控件实现机制。实际上,如果读者开发自行实现验证控件时,将会发现这个过程需要很多知识。例如,服务器端编程语言、JavaScript、CSS、DHTML等等。因此,如果读者希望创建高质量的验证控件,那么不仅要了解相关知识,而且必须达到精通的水平。

共3页: 上一页 [1] [2] [3] 下一页
收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐