西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)C#.NET → 教你只用一個Validator對多個控件進(jìn)行驗(yàn)證

教你只用一個Validator對多個控件進(jìn)行驗(yàn)證

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:博客園時間:2010/3/16 17:32:49字體大小:A-A+

作者:佚名點(diǎn)擊:199次評論:0次標(biāo)簽: Validator

Aloaha Signator Validatorv3.9.285 官方版
  • 類型:電子閱讀大。10.1M語言:中文 評分:5.0
  • 標(biāo)簽:
立即下載

 

這個技巧是非常有用。如果我們有多個控件,我們只用一個驗(yàn)證控件來驗(yàn)證它 。這將減少頁面大小和改善性能,因?yàn)槊總驗(yàn)證控件在客戶端都會被渲染成span,如果一個頁面包含上百個控件,就會使得頁面非常的龐大臃腫。

 

在這篇文章的Demo中,動態(tài)創(chuàng)建的幾個textbox,我只使用一個驗(yàn)證控件去驗(yàn)證它們。

1.a(chǎn)spx頁面上:

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.在服務(wù)端將驗(yàn)證控件和TextBox的onfocus事件關(guān)聯(lián)起來:

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函數(shù)如下:

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.客戶端的驗(yàn)證函數(shù)如下:

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>該欄位只能是數(shù)字。";
13 sender.innerHTML = "<b>該欄位只能是數(shù)字。";
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 }
其實(shí)主要使用了ValidatorHookupControl(curObj, validationControl)的功能。

 

在第一個TextBox中輸入1,提示:該欄位的值不能小于100。

 

在第二個TextBox中輸入a,提示:該欄位只能是數(shù)字。

 

在第三個TextBox輸入值,失去焦點(diǎn)后,再刪除,提示:該欄位不能為空。。

 

onfocus事件可以換成你相應(yīng)的事件,validatetextbox函數(shù)也可以擴(kuò)展等等。

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)