成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ASP.NET數據驗證控件CustomValidator的使用淺析

開發 后端
ASP.NET數據驗證控件是ASP.NET中專門用來驗證表單用戶輸入的控件。那么數據驗證控件CustomValidator主要是什么呢?怎么使用呢?本文就向你講述相關內容。

ASP.NET數據驗證控件的強大是因為在ASP中進行表單數據驗證時,通常開發者必須自己編寫一套驗證的規則,然后自己將這些代碼拷貝到ASP代碼中對表單進行驗證。這樣進行驗證的方式實在不太方便,幸運的是,ASP.NET解決了這個問題,這就是數據驗證Web控件。

ASP.NET數據驗證控件CustomValidator控件概述

簡單地使用前面提到的前四個數據驗證控件,就可以實現我們一般開發的大部分數據表單的驗證要求。然而,有時候我們需要驗證一些比較復雜的表單。想像一下,我們有一個比較復雜的調查表,該調查表包含一個有很多單選按鈕和多選按鈕的表單,一些多選按鈕和個人的愛好相對應,比如游泳、體育、閱讀等,調查表希望被調查人選擇自己的所有愛好。在這些選項下面,提示如下文字:“如果你提示有體育和游泳兩種愛好,請選擇您什么時候開始學習游泳”,在這些文字下方放置一些標識年齡段的單選按鈕,這些按鈕是否有效取決于我們在前面提到的多選按鈕的選擇情況。在以上的驗證情況中,我們就要使用到CustomValidator數據驗證控件。

在所有的ASP.NET數據驗證控件中,都有一個“ControlToValidate”的控件屬性需要設置,這個屬性用來指定表單中需要驗證的表單項。在CustomValidator數據驗證控件中,需要做以下事情:

1. 讀取需要CustomValidator驗證的表單項值;

2. 執行驗證操作;

3. 決定被驗證表單項是否符合驗證要求。

在其他內建控件中,以上步驟用戶是不知道也不要理睬的,但是,在使用CustomValidator的時候,我們需要自己動手實現以上步驟。為了實現以上步驟,我們需要編寫一個服務器端數據驗證函數,該函數的樣式如下:

  1. Sub FunctionName(sender as Object, args as ServerValidateEventArgs)  
  2.  
  3. ……  
  4.  
  5. End Sub 

注意以上函數的args參數,它是FunctionName函數的第二個參數,這個參數有以下兩個屬性:

1. Value:被驗證數據表單的值。

2. IsValid:驗證是否通過。如果通過,IsValid的值是True; 如果沒有通過,其值為False。

在使用CustomValidator的時候,我們不但要設置“ControlToValidate”屬性,我們還必須設置OnServerValidate事件來處理服務器端的數據驗證動作。

建立一個簡單的ASP.NET數據驗證控件CustomValidator

假設現在建立一個與數學有關的網站,在這個網站,我們要求瀏覽者提供自己喜歡的質數,以此來提高我們網站的訪問量。在ASP.NET中,沒有一個現成的可以專門驗證質數的服務器端數據驗證控件,這樣,我們就有必要用到CustomValidator控件。

以下例子用來驗證用戶輸入的數是不是質數。在這個表單中,有一個用戶輸入數據的TextBox控件和一個Button控件,還有用于驗證是不是質數的CustomValidator控件,和兩個用于保證用戶輸入為正數的CompareValidator控件。

  1. ﹤ script language=“vb” runat=“server” ﹥  
  2. Sub btnSubmit_Click(sender as Object, e as EventArgs)  
  3. If Page.IsValid then  
  4.   Response.Write(“﹤ font color=““red””﹥  
  5.   ﹤ i﹥”& txtPrimeNumber.Text & “is, indeed, a good prime number.  
  6.   ﹤  /i﹥﹤  /font﹥”)  
  7. Else  
  8. Response.Write(“﹤ font color=““red””﹥  
  9.  ﹤ i﹥” & txtPrimeNumber.Text & “is ﹤ b﹥not﹤ /b﹥   
  10.  a prime number.﹤ /i﹥﹤ /font﹥”)  
  11. End If  
  12.   End Sub  
  13.   Sub PrimeNumberCheck(sender as Object, args as 
  14.   ServerValidateEventArgs)  
  15. Dim iPrime as Integer = Cint(args.Value),  
  16.  iLoop as Integer, iSqrt as Integer = CInt(Math.Sqrt(iPrime))  
  17. For iLoop = 2 to iSqrt  
  18.   If iPrime mod iLoop = 0 then  
  19. args.IsValid = False  
  20. Exit Sub  
  21.   End If  
  22. Next  
  23. args.IsValid = True  
  24.   End Sub  
  25. ﹤ /script﹥  
  26. ﹤ form method=“post” runat=“server”﹥  
  27.   Enter your favorite prime number:  
  28. ﹤ asp:textbox id=“txtPrimeNumber” runat=“server” /﹥  
  29. ﹤ %-- 建立CustomValidator 控件 --%﹥  
  30.   ﹤ asp:CustomValidator runat=“server”   
  31. id=“custPrimeCheck”  
  32. ControlToValidate=“txtPrimeNumber”  
  33. OnServerValidate=“PrimeNumberCheck”  
  34. ErrorMessage=“Invalid Prime Number”/﹥  
  35. ﹤ %-- 建立兩個CompareValidator控件:***個保證輸入為數字;  
  36. 第二個保證輸入為正數 --%﹥  
  37.   ﹤ asp:CompareValidator runat=“server”  
  38.   id=“compPrimeNumber”Operator=“DataTypeCheck”  
  39.   Type=“Integer”  
  40.   Display=“Dynamic” ControlToValidate=  
  41.   “txtPrimeNumber”ErrorMessage =  
  42.   “You must enter an integer value.”/﹥  
  43.   ﹤ asp:CompareValidator runat=“server”   
  44.   id=“compPrimeNumberPositive”Operator=“GreaterThan”  
  45.   Type=“Integer”  
  46.   Display=“Dynamic” ValueToCompare=“0”  
  47.   ControlToValidate=“txtPrimeNumber”  
  48.   ErrorMessage =“You must enter a value   
  49.   greater than zero.”/﹥  
  50.   ﹤ p﹥﹤ asp:button id=“btnSubmit” runat=  
  51.   “server”OnClick=“btnSubmit_Click” Text=“Submit” /﹥  
  52. ﹤ /form﹥ 

如果對判定質數不是太熟悉,可能對于以上的PrimeNumberCheck事件處理感覺比較迷惑。首先,將用戶在txtPrimeNumber輸入的數據通過事件的args.value傳送給txtPrimeNumber,然后,將用戶的輸入開平方根,再將用戶輸入的數字除以從2到剛才算出的平方根之間的每一個數字。如果出現結果為零的情況,說明用戶輸入的數字不是質數,設置args.isValid為False; 如果全部為零,說明用戶輸入合法,設置args.isValid為True。

ASP.NET數據驗證控件之客戶端驗證

ASP.NET內建數據驗證控件的一大特點就是它們的所有驗證都是在客戶端進行的,不需經過服務器端,而CustomValidator控件的錯誤驗證完全是通過服務器端實現的。必須意識到的一點是,不管是否通過客戶端實現數據驗證,服務器端的數據驗證是一定會產生的。增加客戶端驗證的功能,只是讓我們的數據驗證控件更加友好。

為了實現客戶端驗證的功能,我們必須使用JavaScript或者VBScript寫一個腳本函數,因為VBScript只支持IE瀏覽器,因此,這里我們采用JavaScript來編寫這個函數:

  1. ﹤ script language=“JavaScript” ﹥  
  2. ﹤ !--  
  3.   function CheckPrime(sender, args)  
  4.   { var iPrime = parseInt(args.Value);  
  5. var iSqrt = parseInt(Math.sqrt(iPrime));  
  6. for (var iLoop=2; iLoop﹤ =iSqrt; iLoop++)  
  7.   if (iPrime % iLoop == 0)   
  8.   { args.IsValid = false;  
  9.  return;  
  10.   }  
  11.   args.IsValid = true;  
  12.   }  
  13. // --﹥  
  14. ﹤ /script ﹥ 

在這個例子里面,我們輸入數字6,然后按“Tab”按鈕。在高版本的瀏覽器里面,我們將看到來自CustomValidator控件的錯誤信息,這樣,我們的CustomValidator控件也就有了客戶端驗證功能。在以上代碼中,可能已經注意到我們并沒有定義數據sender和args的類型,因為在腳本語言中,是沒有嚴格的數據類型定義的。

為了實現客戶端數據驗證,惟一要做的就是在CustomValidator控件定義中加入以下語句:ClientValidationFunction=“CheckPrime”,這里,其實就是指定自定義驗證控件的客戶端驗證函數。在這個例子里,前面定義的“CheckPrime”函數就是客戶端驗證函數。

ASP.NET數據驗證控件CustomValidator的使用總結

上面我們介紹了ASP.NET中幾乎是功能最靈活的數據驗證控件CustomValidator的使用,介紹了CustomValidator控件的服務器端驗證和客戶端驗證的實現。盡管在實際的開發工作中,可能我們使用ASP.NET的內置數據驗證控件幾乎完全可以滿足我們的開發要求,但是若能了解CustomValidator控件的使用和特點將會更有利于解決在工作中碰到的數據驗證問題。

ASP.NET數據驗證控件CustomValidator的使用的基本情況就向你介紹到這里,希望對你有所幫助。

【編輯推薦】

  1. 有關ASP.NET代碼分離的一些討論
  2. ASP.NET代碼分離使用的一點體會
  3. ASP.NET數據驗證技術研究詳解
  4. ASP.NET代碼分離之網站建設應用淺析
  5. ASP.NET代碼優化淺析
責任編輯:仲衡 來源: etc.edu.cn
相關推薦

2009-08-04 15:20:59

ASP.NET數據驗證數據驗證控件

2009-07-27 17:25:53

ASP.NET驗證控件

2009-08-04 15:36:16

2009-08-07 17:59:35

控件設計器

2009-08-04 15:02:18

ASP.NET數據驗證

2009-08-05 16:17:29

ASP.NET For

2009-08-05 16:50:09

ASP.NET For

2009-08-07 15:34:15

ASP.NET數據綁定

2009-08-06 15:21:45

ASP.NET控件開發RenderConte

2009-08-07 15:24:16

ASP.NET模板控件

2009-08-07 17:49:44

控件設計器

2009-07-24 09:57:25

ASP.NET HTM

2009-11-26 09:02:59

ASP.NET數據控件

2009-08-03 18:15:05

ASP.NET數據綁定

2009-08-07 17:41:07

ASP.NET Web

2009-07-29 14:12:45

ASP.NET tra

2009-08-10 14:55:43

ASP.NET htt

2009-08-03 10:07:20

ASP.NET Ses

2009-08-07 14:40:36

RegularExprASP.NET驗證控件

2009-08-07 16:32:52

ASP.NET控件設計時支
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜在线精品偷拍 | 色在线免费视频 | 成人a视频片观看免费 | 成年人在线电影 | 国产精品美女久久久 | 欧美xxxx在线 | 一级毛片黄片 | 欧美日韩精品久久久免费观看 | 中文字幕一页二页 | 99亚洲精品 | 日本天堂视频在线观看 | 黄网在线观看 | 黄色av免费网站 | 日本在线观看视频 | 国产99久久精品一区二区永久免费 | 久久高清免费视频 | 操人网站 | 在线观看亚洲专区 | 一级aaaaaa毛片免费同男同女 | 亚洲不卡视频 | 精品视频免费在线 | 日本中出视频 | 国产精品69毛片高清亚洲 | 99pao成人国产永久免费视频 | 精品在线观看入口 | 亚洲国产精品人人爽夜夜爽 | 国产视频一区二区三区四区五区 | 在线精品一区二区三区 | 精品一区二区三区在线观看 | 久草网址 | 亚洲成人免费 | 久久精品黄色 | 伊人网站视频 | 爱草在线| 国产精品成人一区二区三区吃奶 | 99在线资源 | 九九视频在线观看 | 无码一区二区三区视频 | 中文字幕欧美日韩一区 | 亚洲精品自在在线观看 | 中文字幕在线播放不卡 |