首页 / 网页编程 / ASP.NET / 教你只用一个Validator对多个控件进行验证
教你只用一个Validator对多个控件进行验证2011-07-26 博客园 朱祁林这个技巧是非常有用。如果我们有多个控件,我们只用一个验证控件来验证它 。这将减少页面大小和 改善性能,因为每个验证控件在客户端都会被渲染成span,如果一个页面包含上百个控件,就会使得页面 非常的庞大臃肿。在这篇文章的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 }