关于ASP.NET验证中的一些事
在我以前的一篇AJAX的文章里也讲到过验证,今天在一国外技术网站上瞎逛,看到了一篇关于验证控件的使用文章,感觉还有点技术价值,于此简单的把这个技巧性的知识点写出来和大家一起分享。由于EN水平有限,文章里多数讲解都是用我自己的话题,没有照原文进行翻译,不过百变不离其本。
在ASP.NET里提供了专门用于验证的的几个常见验证控件,RequiredFieldValidator,RangeValidator,CompareValidator,CustomValidator以及ValidationSummary等,这些控件我相信大家都会使用,下面就来看看除了我们平时的使用方法外,他们的另类故事。Let's go!!
一、使用图片来显示错误信息
在许多网站上都可以看到这样的功能,特别是在AJAX应用中更为普遍,首先大家可以看看[这里]的注册功能,这就是使用的图片来显示错误提示信息。
如现在要验证输入字段是否为数字,下面我将使用CustomValidator控件来做一个Demo,演示下这个功能的实现,其实其他的控件也能完成这个功能,之所以使用CustomValidator是因为此控件的灵活性比较高,可以很好的使用JavaSript;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
22
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
23
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
24
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
25
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
现在建立一页面(Validator.aspx),将上面这JavaScript代码片段加入,现在在此页面上放置一TextBox和一个CustomValidator控件以及一个按扭来用于触发验证。详细的属性配置如下:
其实也就是把错误消息从平时所使用的普通文本信息改为一张图片,不同的是需要将其Display属性设置为动态(Dynamic)显示,ClientValidationFunction设置为在客户端定义好的JavaScript方法便可。客户端编码如下:
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
测试结果如下:
二、使用RequiredFieldValidator进行非空验证
1、传统的验证方式
在传统的演示方式中,通过设置其ErrorMessage属性指定验证错误提示信息,这样当所设置的控件不能通过验证,此信息就会显示出来,详细定义如下:
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2、弹出JavaScript的提示窗口
此时,或许很多朋友已经想到了怎么去实现了,这个实现确实很简单,只需要将验证控件的Text属性赋上一句JavaScript代码就OK,如果不能通过验证则弹出提示窗口,详细定义如下:
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3、带声音的错误提示
说到带声音,那么我们就会想到,验证不能通过是否就是去执行一个音频文件呢?对,就是这样实现,当设置的验证不能通过的时候,以声音的形式提示用户<1.wav:用户你好,你输入的密码错误!>。呵呵,好象这个很好玩,如果做到实际的项目中去的哈,感觉会起到很不错的效果。那到底怎么去实现呢?怎样才能去调用到音频文件来作为错误提示呢?详细如下:
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
看上面代码便知道,这个其实还是很简单,同上面使用JavaScript提示窗口一样,在验证控件的Text属性上动手术,让其指向一个音频文件便大功告成。其实也可以使用图片做为错误提示信息的,详细请回头看本文前面的介绍。现在万事具备只欠东风了,东风何在?打开浏览器,测试下,看看浏览起是否可以让我们上面所做的这一切打胜仗。
通过测试是可以实现的,从本文中可以看出,我们还需要更加深入的学习,以验证控件来说就还有如上面这众多的东西是以前所没学到的。
上面这些好象都很完美,不过还需一些问题,如果是使用的.net framework 1.1来开发的则不支持firefox(Mozilla), Opera, Safari 等浏览器,IE下是没问题的;如果是使用的.net framework 2.0或以上版本开发的支持所有的浏览器。
注:转载请注明出处:http://beniao.cnblogs.com/ 或 http://www.cnblogs.com/