程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 教你只用一個Validator對多個控件進行驗證

教你只用一個Validator對多個控件進行驗證

編輯:關於ASP.NET

這個技巧是非常有用。如果我們有多個控件,我們只用一個驗證控件來驗證它 。這將減少頁面大小和 改善性能,因為每個驗證控件在客戶端都會被渲染成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         }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved