首页 > 语言 > 关键词 > ASP.NET最新资讯 > 正文

ASP.NET立即上手教程(6)

2007-09-12 11:30 · 稿源:网页教学网

表单验证服务器控件

验证介绍

网络形成框架包括一套易用而功能强大的用于验证的服务器控件,用来检查输入表单的错误,并且在必要的时候,向用户显示提示信息。将验证控件添加到设计圈套表格,就像添加其他服务器控件一样。验证控件有不同的验证类型,例如范围检查或者模式匹配,添加一个RequiredFieldValidator 控件可以保证用户不能跳过某一个要求输入内容的字段。你可以对一个输入控件组合若干个验证控件。例如,你可能要求某一字段不能为空,并且必须输入某一个范围的值。验证控件与服务器控件的有限子集协同工作。也就是说,对于不同的控件,可能需要验证不同属性的值。

验证控件类型

最简单的验证表单是要求输入字段。不管用户在字段中输入了任何值,它就是验证通过的。如果页面中所有的字段都验证通过,那么页面也是验证通过的(page is valid)。下面的例子说明了RequiredFieldValidator验证控件的使用。

特定的验证情况需要不同的验证控件,例如范围检查或者模式匹配。

客户端验证

一般来说,验证控间总是在服务器端执行验证检查。 然而,如果用户正在使用一个支持 DHTML 的浏览器工作,验证控间也能使用客户端脚本来验证。藉由客户端确认,当表单提交给服务器的时候,客户端的任何检测的错误都可以发现。当任何一个验证控间发现错误的时候,提交到服务器的表单都会取消,同时显示验证控间的Text 属性。这就允许用户在表单提交到服务器之前,校正输入的错误。当包含错误的字段失去焦点的时候,该字段马上会被重新验证。这样就给用户提供了一种丰富的、交互式的验证过程。

注意:web forms页框架总是在服务器端执行验证,即使验证已经在客户端执行也是如此。这有助于防止冒名顶替和预订事务来通过验证。

默认情况下允许客户端验证。如果客户端条件允许,高版本浏览器验证模式将自动执行。要想禁止客户端验证,设置页面的 ClientTarget 属性为"Downlevel"("Uplevel" 强制客户端验证)

显示验证错误信息

当用户的输入开始处理(例如,当表单已经提交),Web Forms页面框架传递用户的输入到相关联的验证控件。验证控件测试用户的输入,并且设置属性来标志输入是否通过验证测试。所有的验证控件运行完毕之后,才设置页面的IsValid属性。如果任何一个验证控件显示了验证失败,整个页面的验证也是无效的。

如果验证控件监测到错误,该控件或者页面上的ValidationSummary 控件就会在页面上显示一条错误提示信息。ValidationSummary 控件显示错误提示的前提是页面的IsValid等于false。(也就是说,任何一个验证控件没有通过,都会激活ValidationSummary),它可以监测到每一个验证控件的验证错误,并且把所有的错误一次全部显示出来。下面的例子演示了ValidationSummary控件如何进行错误提示的。

使用比较验证控件CompareValidator

CompareValidator服务器验证控件用来比较两个控件的值。它使用三个关键属性来进行它的验证。ControlToValidate 和 ControlToCompare 包含要比较的值,Operator 定义了要进行的比较类型---例如,等于或者不等于等等。CompareValidator通过对表达式求值来执行验证,就象下面这样:

( ControlToValidate ControlToCompare )

如果表达式的值为true,验证结果为通过。

下面的例子说明了如何使用 CompareValidator 控件

使用范围验证控件 RangeValidator

RangeValidator 服务器控件测试输入值是否在一个给定范围之内。RangeValidator 使用三个关键属性来执行验证。 ControlToValidate 包含验证的对象,MinimumValue 和 MaximumValue 定义了有效范围的最小值和最大值。

下面的例子显示了如何使用RangeValidator 控件。

使用正则表达式验证控件RegularExpressionValidator

RegularExpressionValidator 服务器控件用来检查用户输入是否与正则表达式定义的模式匹配。这个控件允许你检查可预见的字符串系列,例如社会保障号码、电子邮件地址、电话号码和邮政编码等等。

RegularExpressionValidator 使用两个关键属性来执行验证。ControlToValidate 包含要验证的控件对象, ValidationExpression 包含用来匹配的正则表达式。

原教材对正则表达式说得比较少,这里我来补充一下:

正则表达式是一种功能强大的字符串定义规则,例如dos下熟悉的“*” 和“?” 他最早在unix中引入。在asp.net中,他的格式是[可接受字符]{ 范围}。举例来说,[a-z]{ 3,7}表示至少含有三个字符,最多含有7个字符,其中字符只能是’a’~’z’的范围,如”krpam”是合法的,而”12fe3”或者”5W”是不合法的。

在[]里面除了?-?的定义之外,也可以直接写出可接受的字符,例如[ourasp]表示只接受’o’、’u’、’r’、’a’、’s’、’p’这几个字符,而^表示反集合,例如[^aurasp],表示除了’o’、’u’、’r’、’a’、’s’、’p’以外,任何字符都接受。如果表示可接受任意字符,使用“.”来表示。例如, .{ 0,} 表示可以接受任意多个任意字符。

在{ }里面,除了常用的{ 3}、{ 2-13}这样的格式以外,还有以下常用的格式:{ n,} 表示至少输入n个字符。

“|” 符号表示or(或),例如[a-zA-Z]{ 3}|[0.9]{ 3}表示可接受的字符是3个英文字母或者3个数字字符。请注意他与[a-zA-Z0-9]{ 3}的区别。为了阅读上的方便,我们通常会把含有“|”符号的字符串放在()中,例如([a-zA-Z]{ 3}|[0.9]{ 3})上述的[]{ }.()|都是正则表达式中的特殊符号。如果希望可接受的字符串中包含这些字符,必须在这些字符前面加上斜线 \。例如,“\.{ 3}”,表示必须输入3个”.”。

下面的例子演示如何使用 ValidationExpression控件。

使用自定义验证控件 Custom Validation

CustomValidator 服务器控件调用用户自定义函数来执行一个标准验证控件无法处理得验证。该自定义函数既可以在服务器端执行,也可以在客户端脚本(如VBscript 或JScript)。对于客户端自定义验证,自定义函数名称必须在ClientValidationFunction 属性中明确指出。自定义函数必须使用这样的参数格式:

function myvalidator(source, arguments)

注意 source 参数是客户端CustomValidator ,arguments参数是带有两个属性Value 和 IsValid的对象, Value 属性对象的值, IsValid 属性是一个布尔值,用来设置返回的验证结果。

对于服务器端自定义验证,将你的自定义验证放置在验证控件的OnServerValidate 中。

下面的例子演示了如何使用CustomValidator 控件。

使用全部验证控件的例子

下面的例子演示了一个典型的注册表单,其中使用了本章讨论的所有验证控件

本章小结

1、验证控件可以用来检验Web Forms 页面的任何输入。

2、对于一个给定的输入字段,可以使用若干个验证控件来检验。

3、除了服务器端验证以外,也可以使用客户端验证来提高form的可用性。

4、CustomValidator 控件可以让用户自定义验证规则。

 

  • 相关推荐
  • 大家在看
  • 王自健上手华为MatePad Pro:看片完胜苹果

    6月9日晚,王自健评价华为MatePad Pro:看片秒苹果。MatePad Pro 5G是华为Mate系列新一代平板电脑,首销到手价为4999元。MatePad Pro 5G采用10.8英寸2K分辨率全面屏,屏占比90%,搭载麒麟

  • Esprinet以3400万欧元收购GTI

    [TechWeb]意大利批发商Esprinet宣布已与GTI达成协议,以购买该公司100%的股份。这项行动共计3380万欧元,将在当局于9月底批准时以现金支付。通过购买GTI,Esprinet凭借收入和与Tech Data的距离本身,成为西班牙市场上第一家批发商,该公司在过去几年中一直与该公司争夺排名第一的位置。此外,GTI将提供Esprinet,该公司在西班牙经营JoséMaríaGarcía(这是一项补充业务),该业务是通过云销售的软件,尤其是Microsoft的软件。?

  • Planet将通过SpaceX的火箭发射6颗Skysat卫星

    DoNews 6月10日消息(记者 刘文轩)据The Verge报道,卫星影像公司Planet将在6月和7月的两次卫星发射中,采用SpaceX的火箭,各运送3颗110kg重的卫星。至于价格,SpaceX则是以每公斤500美元的价格来计算,Planet发射副总裁Mike Safyan表示,SpaceX将发射费用压低到“难以置信”的程度。Planet原本运营着60颗中解析度卫星,2017年收购Google的Terra Bella卫星影像部门后,Planet拥有了7颗高解析度Skysat卫星。在这之后,Planet又发射

  • Win10五月更新已跑上手机:电话、短信都能用

    因为Windows 10 on ARM的存在,手机上运行Windows 10操作系统便有了理论可能。事实上,从2018年以来,爱折腾的机友们就没有停止过相关项目。据外媒报道,开发者已成功为一加6、小米MIX、Galax

  • 西瓜视频开通广告收益教程

    ​西瓜视频的广告一般会展示在视频开始或结尾的地方,开通西瓜视频广告收益后,作者将享有一定的广告收益。而平台为了平衡用户体验,并不是每次刷新都会有广告出现。那么怎么开通西瓜视频广告收益呢?以下是关于西瓜视频开通广告收益的详细介绍。

  • ColorOS 7.2潮玩功能汇总,上手根本停不下来

    OPPO Reno4 系列在 6 月 5 日正式发布,作为一台主打影像以及续航的新机,OPPO Reno4 系列已经「堆料满满」。不过OPPO似乎还不满足于此,在软件层面上,OPPO 全新系统小版本ColorOS 7. 2 还为OPPO Reno4 系列带来不少有趣的玩法。(OPPO Reno4 系列发布会上ColorOS 7. 2 带来不少潮玩功能)本次OPPO Reno4 系列搭载的ColorOS 7. 2 带来了OPPO 创新产品探索平台与用户共创社区——OPPO LAB。通过OPPO LAB,OPPO可以及时将新功能与服

  • 不会演戏的网红不是好厨子 ,剧情美食教程怎么上热门?

    当你无意间刷到这些视频时,小小的眼睛里开始出现大大疑惑。惊讶中有一丝不屑,不屑中又有一丝好奇。

  • 西瓜视频PC电脑版下载教程

    西瓜视频是一个内容覆盖很广的视频APP,里面的短视频内容很丰富。不过现在只有安卓版和iOS版,有人想要下载使用PC电脑版,具体在哪里可以下载呢,这里我们来看下电脑版的具体安装方法。

  • 雷军上手Redmi K30 Pro变焦版:真全面屏的感觉无与伦比

    6月30日晚间,雷军分享了上手Redmi K30 Pro变焦版的心得体会。雷军表示,我们在讨论产品的时候,有一些米粉超爱真全面屏。在屏下相机技术还不太成熟的时候,做弹出前置相机方案是唯一的方案。

  • 网友上手MIUI 12版小米10 Pro:感觉像换了台机器

    6月18日消息,一位网友的小米10 Pro升级到了MIUI 12稳定版,表示感觉像换了一台机器一样,各种流畅、各种漂亮的动画。小米产业投资部合伙人潘九堂表示,MIUI 12加持的小米10系列更香了。据

  • 有什么不错的蓝牙降噪耳机?618超级值得上手耳机名单

    首先,蓝牙耳机不少,蓝牙降噪耳机也不少,但是好用的蓝牙降噪耳机却不是很多,我觉得能够价格上合理还很实用的,能达到物超所值的地步,我总结几款熟知的蓝牙耳机!第一款Nank 南卡A1入耳式耳塞,对入耳式感冒的朋友可以重点注意了!!南卡A1采用全球享誉的ANC降噪技术,可识别噪音,随即主动发出修正信号,淡化背景音干扰,独享宁静时光。主动降噪深度最高可达28dB,非常值得推荐的蓝牙好物!!南卡 NANK/A1真无线蓝牙耳机 ANC主

  • docker怎么安装MySQL docker安装MySQL教程

    把MySQL放进Docker,总共需要几步?本次就通过社区版容器安装2个mysql实例,看一下部署有多简单。

  • 最强蜗牛怎么换区 超详细换区步骤教程

    ​最强蜗牛中其实是可以进行换区操作的,但是很多人还不明白到底要怎么才能进行换区,所以今天就来为大家分享一下最强蜗牛换区步骤教程。

  • 即刻怎么改密码 新版本即刻密码修改教程

    即刻APP经常的会碰到要修改密码的操作,很多人还不清楚在哪可以比较方便的改密码,下面就来为大家详细的介绍一下。

  • 荒野乱斗固定摇杆设置教程 摇杆怎么固定

    荒野乱斗中是可以使用摇杆的,很多玩家还不清楚怎么让摇杆固定设置好,下面就来为大家详细的介绍一下荒野乱斗固定摇杆设置教程。

  • 拼多多黑卡怎么分享不了 详细黑卡分享图文教程

    拼多多品牌黑卡是一个非常实用的东西,里面的钱是可以购买商品的时候直接进行抵扣现金的,能节省很多钱,有些朋友也想分享一些邀请码,但是不知道怎么分享,下面就来为大家详细的介绍一下黑卡分享图文教程。

  • 怎么录制视频教程?电脑录屏可以这样做

    怎么录制视频教程?我们经常会用视频来记录自己的生活,同样可以用视频的形式记录电脑上的内容。在电脑上录制视频,最好使用一些专业的录屏软件,能够提高录屏的质量。如果你也在寻找一个实用的录屏软件,那下面分享的方法可以帮助到你!方法一:windows系统录屏先分享一个适用于Windows系统的方法,推荐使用电脑中的“问题步骤记录器”。首先,打开电脑后打开电脑运行窗口,也可以使用快捷键“win+r”,打开“。然后输入“psr”,

  • 微信拍一拍功能怎么用 详细操作步骤教程

    微信在最近上线了一个很好玩的功能——拍一拍,这个功能最近在微信上比较流行,可以拍一拍朋友,比起之前的QQ抖动功能更加的具有一点“人味”,很多人还不知道微信拍一拍怎么用,下面就来为大家分享一下教程。

  • 最全教程!OKEx平台币OKB福利盛宴来袭

    专业的羊毛党的一个原则是:没有羊毛那就创造一只羊来薅!作为背靠最牛交易所OKEx的主流平台币OKB,现在都有哪些羊毛可以薅? 今天我们汇总一下比较值得一试且100%成功的那些OKB的福利! 一、通过OKB抢6. 1 折比特币和 61 个OKB (福利指数:★★★★★) 活动页面: 6 月 1 日12:00- 6 月 5 日18:00 【福利】 1、6. 1 折比特币:现在一个比特币均价是 70000 元,抽中的小伙伴,相当于直接薅到将近 3 万元的羊毛!! 2、 61 个OK

  • 日本动画电影《无限》线上首映 西瓜视频与Netflix全球同步播出

    【TechWeb】6月18日消息,今天下午6点,日本动画电影《无限》(又名《想哭的我戴上了猫的面具》)开启全球首映,在中国通过西瓜视频、抖音、今日头条平台上线。这是继BBC剧集《德古拉》后,西瓜视频再度实现与Netflix全球同步播出影视作品。届时,用户可在上述平台中付费观看该片。 公开资料显示,《无限》由日本著名导演佐藤顺一和柴山智隆联合执导,主要讲述女生笹木美代的青春奇幻故事,主打超萌轻甜治愈风格。绰号为“无限”?

  • 参与评论
文明上网理性发言,请遵守新闻评论服务协议