All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
delphi结构化异常处理
VC#2005快速入门之复合赋值操作符_[Asp.Net教程]
asp.net2.0中读取web.config数据库连接字符串2种方法_.net资料_编程技术
delphi构造函数与析构函数的使用方法
ASP.NET 格式化字符串
用.net,处理xmlHttp发送异步请求_.net资料_编程技术
用PHP操作MySql数据库(DB类)_[PHP教程]
visual c++中制作ActiveX控件的方法
使用C#在进度条中显示复制文件的进度_[Asp.Net教程]
用IHttpModule解决输入中文地址乱码问题(一)_[Asp.Net教程]
Reading number is top 10 pictures
From China fortress sora aoi5
Absolutely shocked. National geographic 50 animal photographys4
9.3阅兵全景图8-航空梯队
Terrorist smile the largest human history an explosion1
Terrorist smile the largest human history an explosion2
The world's top ten most beautiful railway station2
英雄联盟超神十连杀截图
Summer is most suitable for young people to travel in China6
The cat shit
A man's favorite things5
Download software ranking
Boxer vs Yellow1
功夫熊猫2(上集)
asp.netWeb服务器高级编程
linux高级编程
The cock of the Grosvenor LTD handsome
Such love down(擒爱记)
在线棋牌游戏3.05版
圣殿祭司的ASP.NET.2.0.开发详解-使用C#
Boxer's Top ten classic battle5
I'm come from Beijing2
delv published in(发表于) 2014/1/23 3:10:52 Edit(编辑)
asp.net中数据校验部分的封装与应用_[Asp.Net教程]

asp.net中数据校验部分的封装与应用_[Asp.Net教程]

asp.net中数据校验部分的封装与应用_[Asp.Net教程]

我们的业务系统涉及到较多的表单编辑与校验,最简单的办法是使用asp.net自带的数据校验控件即可,但这样有以下3个问题:


1 校验控件要在设计时加入到表单上,并手工设置:数据类型,错误信息等属性,比较繁琐。
2 对于一个输入框,我们可能要检查多项,如:必填,必须是日期格式,并且要大于2007-1-1。这样就需要加入多个校验控件。
3 业务规则和表单绑定在一起,不利于维护和重用。


我们希望的校验功能是:
1 校验规则和表单脱离,表单上画好输入框即可,校验控件会在运行时,根据配置文件动态创建。
2 根据验证规则,生成默认的:不能为空,错误的数字类型,必须在1到100之间这样的提示信息。
3 灵活的验证规则表达式:如: range(1, 200) , >=0.5 , Mail(), Mobile()。目前不支
持 and, or 这样的条件,但容易扩展。


为此我们封装了这部分的功能,使用时只要:


在xml文件中设置好:控件名称,数据类型,是否必填,验证表达式信息。

排口数量
Integer
true
range(1, 100)


在page的Page_Init事件中,调用类方法:
ValidateHelper.LoadFromFile("数据校验_配置.xml") 即可。



类设计:
// 配置信息类
class ValidateInfo
{
public string ControlName;
public ValidationDataType DataType;
public string ErrorMessage;
public bool Require;
public string Expression;
}

// 校验控件创建工厂
public class ValidatorFactory
{
CreateRequiredFieldValidator();
CreateDateTypeCheckValidator();
CreateRangeValidator(string min, string max);
CreateCompareValidator(ValidationCompareOperator oper, string valueToCompare);
...
}

// 校验规则解析器,根据配置信息,创建校验控件
public class ValidatorParser
{
Parse(ValidateInfo info, ValidatorFactory factory);
...
}

// 读取配置信息,并绑定校验控件到表单
public class ValidateHelper
{
LoadFromFile(Page page, string fileName)
}



附件是示例代码和说明文档: 下载


来源:jiyang的cnblogs







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.