知识大全 ASP.NET 2.0服务器控件之验证控件示例
Posted 知
篇首语:最关情,折尽梅花,难寄相思。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ASP.NET 2.0服务器控件之验证控件示例相关的知识,希望对你有一定的参考价值。
ASP.NET 2.0服务器控件之验证控件示例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
在上一篇文章中 我们讲解了有关实现验证控件的一些知识 那些内容将为开发人员实现验证控件奠定一定基础 为了帮助读者更好的理解验证控件的实现方法 本文将首先介绍常见验证控件的实现步骤 然后 通过一个典型示例说明验证控件的实现方法 验证控件实现步骤 在创建验证控件过程中 需要实现服务器端验证和客户端验证等核心内容 下面列举了验证控件的常见实现步骤 ( )验证控件类应由BaseValidator基类继承 这样可使验证控件自动继承参与验证框架所需要的功能 例如 通过继承BaseValidator的ControlToValidate属性 实现验证控件与验证目标控件的关联 ( )实现验证控件所特有的一些属性 开发人员可根据应用需求 从方便实用的角度出发定义这些特有属性 ( )重写AddAttributesToRender方法 将特有属性及相关内容添加到控件呈现中 当实现客户端验证代码时可能需要引用相关呈现内容 ( )重写EvaluateIsValid方法 为验证控件添加服务器端验证逻辑 ( )重写PreRender事件的事件处理方法OnPreRender 除调用基类实现方法外 还要实现对客户端验证脚本文件的注册 ( )编写与验证控件一起打包的客户端验证脚本文件 并且将其放置到正确的目录中 通过以上的一个或者几个步骤 开发人员就可以实现一个基本的验证控件 在实现过程中 服务器端验证逻辑和客户端验证逻辑必须保持一致 否则 即使输入数据通过了客户端验证 也无法通过服务器端验证 下面将通过一个典型实例来进一步说明验证控件的实现方法 以加深读者的理解 典型应用 本节将使用上文所介绍的开发验证控件的方法 创建一个名为TelNumValidator的验证控件 该控件用于验证用户输入的电话号码是否符合规则 如果不符合规则 那么动态提示错误信息 其效果如图
图 效果图(输入错误状态下)
如图 所示 页面中主要包括了一个TextBox文本框和一个提交按钮 用户必须输入正确格式的电话号码 才能够通过验证 图 中 由于没有输入正确的电话号码 当单击提交按钮时 则无法实现提交页面 同时 页面还分红蓝两种颜色给出了提示信息 下文详细讲解了验证控件的实现过程 首先 在实现TelNumValidator控件之前 必须进一步明确验证条件 对于国内电话号码 一般为两种模式 一种是区号为 位 电话号码为 位 另一种是区号为 位 电话号码为 位 据此 可得出用于验证的正则表达式 \\d \\d |\\d \\d 无论是服务器端验证逻辑 还是客户端验证逻辑 都必须遵从以上验证条件 只有符合这两种模式的输入数据才能够通过验证 下面列出了验证控件TelNumValidator的服务器端验证的源代码 using System; using System Collections Generic; using System ComponentModel; using System Text; using System Web; using System Web UI; using System Web UI WebControls; using System Text RegularExpressions; namespace WebControlLibrary [DefaultProperty( Text )] [ToolboxData( < :TelNumValidator runat=server> </ :TelNumValidator> ) ] public class TelNumValidator : BaseValidator // 定义私有变量 其中_clientFileUrl表示JavaScript文件存储目录 // ValidationExpression表示正则表达式 private string _clientFileUrl = ClientFiles/ ; private const string ValidationExpression = @ (\\d \\d |\\d \\d ) ; // 定义属性ClientFileUrl 用于获取或设置脚本相对路径 [ Description( 获取或设置脚本相对路径 ) DefaultValue( ClientFiles/ ) Category( Appearance ) ] public string ClientFileUrl get return _clientFileUrl; set _clientFileUrl = value; //重写AddAttributesToRender 为验证控件添加特殊属性evaluationfunction和validationexp protected override void AddAttributesToRender(HtmlTextWriter writer) base AddAttributesToRender(writer); if (RenderUplevel) writer AddAttribute( evaluationfunction TelNumValidatorEvaluateIsValid false); writer AddAttribute( validationexp ValidationExpression); //重写EvaluateIsValid方法 定义服务器端验证逻辑 protected override bool EvaluateIsValid() string controlValue = GetControlValidationValue(ControlToValidate); if (controlValue == null) return true; controlValue = controlValue Trim(); try Match m = Regex Match(controlValue ValidationExpression); return (m Success && (m Index == ) && (m Length == controlValue Length)); catch return false; //重写OnPreRender方法 注册客户端脚本程序 protected override void OnPreRender(EventArgs e) base OnPreRender(e); if (RenderUplevel) Page ClientScript ReGISterClientScriptBlock ( typeof(TelNumValidator) ClientValidator GetClientFileUrl ( ClientValidator js )); // 实现辅助函数GetClientFileUrl 用于获取JavaScript文件的完整路径 private string GetClientFileUrl(string fileName) string tempClient = String Format( <script language=\\ javascript\\ src=\\ \\ ></script> (ClientFileUrl + fileName)); return tempClient;
[NextPage]
从以上代码可知 TelNumValidator控件的实现 是按照上文说明的验证控件实现步骤编写的 该类实现了以下重要逻辑 ( )验证控件类TelNumValidator类从BaseValidator基类继承 因此 该类自动继承了通用验证控件应该具备的属性 方法和事件 ( )定义用于获取或设置脚本相对路径的属性ClientFileUrl 默认值为 ClientFiles/ 通过该属性页面开发者可自定义客户端验证脚本文件的目录 这样可增加控件的灵活性 ( )重写AddAttributesToRender方法 为控件添加特性evaluationfunction和validationexp 特性evaluationfunction对应的值是进行客户端验证的方法名 特性validationexp对应的值是用于验证的正则表达式 通过将其呈现到客户端 那么客户端验证脚本即可使用该表达式 ( )重写EvaluateIsValid方法 定义服务器端验证逻辑
( )重写OnPreRender方法 注册客户端脚本文件ClientValidator js
cha138/Article/program/net/201311/11616相关参考
ASP.NET2.0服务器控件开发精要 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 利用ASP
知识大全 ASP.NET 2.0高级控件之FileUpload控件
ASP.NET2.0高级控件之FileUpload控件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧
ASP.NET2.0服务器控件开发的基本概念 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 利用
ASP.NET2.0移动开发之列表控件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!概述 在很多
ASP.NET2.0高级数据处理之处理控件事件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!在前面
探讨ASP.NET2.0的Web控件改进之概述 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一引言
ASP.NET服务器控件之视图状态 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 为Web页面及
ASP.NET2.0服务器控件之创建复杂属性 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 页面
Asp.net2.0自定义控件开发 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! (一)概述
当Asp.Net验证控件遇到FCKeditor 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 使