在我以前的一篇AJAX的文章里也讲到过验证,今天在一国外技术网站上瞎逛,看到了一篇关于验证控件的使用文章,感觉还有点技术价值,于此简单的把这个技巧性的知识点写出来和大家一起分享。由于EN水平有限,文章里多数讲解都是用我自己的话题,没有照原文进行翻译,不过百变不离其本。
\n
在ASP.NET里提供了专门用于验证的的几个常见验证控件,RequiredFieldValidator,RangeValidator,CompareValidator,CustomValidator以及ValidationSummary等,这些控件我相信大家都会使用,下面就来看看除了我们平时的使用方法外,他们的另类故事。Let’s go!!
\n
一、使用图片来显示错误信息
在许多网站上都可以看到这样的功能,特别是在AJAX应用中更为普遍,首先大家可以看看[这里]的注册功能,这就是使用的图片来显示错误提示信息。
如现在要验证输入字段是否为数字,下面我将使用CustomValidator控件来做一个Demo,演示下这个功能的实现,其实其他的控件也能完成这个功能,之所以使用CustomValidator是因为此控件的灵活性比较高,可以很好的使用JavaSript;
\n
1<script type=”text/javascript” language=”javascript”>
2function isInteger(s)
3{
4 var i;
5 for (i = 0; i < s.length; i++)
6 { //检测字符是否为数字
7 var c = s.charAt(i);
8 if (((c < “0″) || (c > “9″))) return false;
9 }
10 return true;
11}
12
13function validate_Integer(source, args)
14{
15 var txtintval=document.getElementById(“<%= txtInt.ClientID %>”);
16 if(!isInteger (txtintval.value))
17 {
18 args.IsValid=false;
19 }
20 else
21 {
22 args.IsValid=true;
23 }
24}
25</script>
\n
现在建立一页面(Validator.aspx),将上面这JavaScript代码片段加入,现在在此页面上放置一TextBox和一个CustomValidator控件以及一个按扭来用于触发验证。详细的属性配置如下:
其实也就是把错误消息从平时所使用的普通文本信息改为一张图片,不同的是需要将其Display属性设置为动态(Dynamic)显示,ClientValidationFunction设置为在客户端定义好的JavaScript方法便可。客户端编码如下:
\n
2 <form id=”form1″ runat=”server”>
3 <asp:TextBox ID=”txtInt” runat=”server”></asp:TextBox>
4 <asp:CustomValidator ID=”CustomValidator1″ runat=”server”
5 ClientValidationFunction=”validate_Integer”
6 Display=”Dynamic”
7 ErrorMessage=”<img src=’Images/check_error.gif’ style=’width:13px;height:13px;’>”>
8 </asp:CustomValidator><br />
9 <asp:Button ID=”Button1″ runat=”server” Text=”Button” />
10 </form>
11</body>\n