教你只用一个Validator对多个控件进行验证


在这篇文章的Demo中,动态创建的几个textbox,我只使用一个验证控件去验证它们。

  1.aspx页面上:

1 <body>
2     <form id="form1" runat="server">
3     <div>
4         <asp:CustomValidator ID="CustomValidator1" runat="server" ></asp:CustomValidator>
5        <asp:ValidationSummary ID="ValidationSummary1" runat="server" />
6     </div>
7 
8     </form>
9  </body>

  2.在服务端将验证控件和TextBox的onfocus事件关联起来:

 1     protected void Page_Load(object sender, EventArgs e)
 2     {
 3         if (!IsPostBack)
 4         {
 5             for (int i = 0; i < 10; i++)
 6             { 
 7                 TextBox tb = new TextBox();
 8                 tb.ID = "tb" + i.ToString();
 9                 tb.Attributes.Add("onfocus", "HookUpControl(this,'" + CustomValidator1.ClientID + "')");
10                 Page.Form.Controls.Add(tb);
11             }
12         }
13     }

  3.HookUpControl函数如下:

1        function HookUpControl(curObj, validatorClientID) 
2         {
3             var validationControl = document.getElementById(validatorClientID);
4             validationControl.controltovalidate = curObj.id;
5             validationControl.clientvalidationfunction = "validatetextbox";
6             validationControl.validateemptytext = "true";
7             ValidatorHookupControl(curObj, validationControl);
8         }

4.客户端的验证函数如下:

 1         function validatetextbox(sender, args) 
 2         {
 3             if (args.Value == "") 
 4             {
 5                 sender.errormessage = "<b>该栏位不能为空。";
 6                 sender.innerHTML = "<b>该栏位不能为空。";
 7                 args.IsValid = false;
 8                  return;
 9             }
10             if (isNaN(args.Value)) 
11             {
12                 sender.errormessage = "<b>该栏位只能是数字。";
13                 sender.innerHTML = "<b>该栏位只能是数字。";
14                 args.IsValid = false;
15                  return;
16              }
17              if (Number(args.Value) < 100) {
18                  sender.errormessage = "<b>该栏位的值不能小于100。</b>";
19                  sender.innerHTML = "<b>该栏位的值不能小于100。</b>";
20                  args.IsValid = false;
21                  return;
22              } 
23        }

  其实主要使用了ValidatorHookupControl(curObj, validationControl)的功能。

  在第一个TextBox中输入1,提示:该栏位的值不能小于100。

本文示例源代码或素材下载



相关阅读:
使用Windows7用户不可错过的77条小知识
拖动布局之保存布局页面cookies篇
ajax 技术和原理分析
Discuz数据库结构参考 方便二次开发
Windows7使用Aero样式怀念经典开始菜单
帝国下载系统 V2.5 增加FCKeditor编辑器的方法
JS面向对象编程 for Cookie
教你美化ubuntu系统
用CSS设计高用户体验的web文字大小
探讨 Windows 2000 无人参与安装
修改z-blog分页页码样式
Apche日志系列(2):错误日志
Vista系统提高ADSL上网速度的两种设置方法
Mysql 本地计算机无法启动 mysql 服务 错误 1067:进程意外终止。
快速导航

Copyright © 2016 phpStudy |