成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

ASP.NET數(shù)據(jù)驗(yàn)證控件CustomValidator怎么用

這篇文章主要為大家展示了“ASP.NET數(shù)據(jù)驗(yàn)證控件CustomValidator怎么用”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“ASP.NET數(shù)據(jù)驗(yàn)證控件CustomValidator怎么用”這篇文章吧。

成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供聊城網(wǎng)站建設(shè)、聊城做網(wǎng)站、聊城網(wǎng)站設(shè)計(jì)、聊城網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、聊城企業(yè)網(wǎng)站模板建站服務(wù),十余年聊城做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

ASP.NET數(shù)據(jù)驗(yàn)證控件CustomValidator控件概述

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

在所有的ASP.NET數(shù)據(jù)驗(yàn)證控件中,都有一個(gè)“ControlToValidate”的控件屬性需要設(shè)置,這個(gè)屬性用來指定表單中需要驗(yàn)證的表單項(xiàng)。在CustomValidator數(shù)據(jù)驗(yàn)證控件中,需要做以下事情:

1. 讀取需要CustomValidator驗(yàn)證的表單項(xiàng)值;

2. 執(zhí)行驗(yàn)證操作;

3. 決定被驗(yàn)證表單項(xiàng)是否符合驗(yàn)證要求。

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

Sub FunctionName(sender as Object, args as ServerValidateEventArgs)   ……   End Sub

注意以上函數(shù)的args參數(shù),它是FunctionName函數(shù)的第二個(gè)參數(shù),這個(gè)參數(shù)有以下兩個(gè)屬性:

1. Value:被驗(yàn)證數(shù)據(jù)表單的值。

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

在使用CustomValidator的時(shí)候,我們不但要設(shè)置“ControlToValidate”屬性,我們還必須設(shè)置OnServerValidate事件來處理服務(wù)器端的數(shù)據(jù)驗(yàn)證動作。

建立一個(gè)簡單的ASP.NET數(shù)據(jù)驗(yàn)證控件CustomValidator

假設(shè)現(xiàn)在建立一個(gè)與數(shù)學(xué)有關(guān)的網(wǎng)站,在這個(gè)網(wǎng)站,我們要求瀏覽者提供自己喜歡的質(zhì)數(shù),以此來提高我們網(wǎng)站的訪問量。在ASP.NET中,沒有一個(gè)現(xiàn)成的可以專門驗(yàn)證質(zhì)數(shù)的服務(wù)器端數(shù)據(jù)驗(yàn)證控件,這樣,我們就有必要用到CustomValidator控件。

以下例子用來驗(yàn)證用戶輸入的數(shù)是不是質(zhì)數(shù)。在這個(gè)表單中,有一個(gè)用戶輸入數(shù)據(jù)的TextBox控件和一個(gè)Button控件,還有用于驗(yàn)證是不是質(zhì)數(shù)的CustomValidator控件,和兩個(gè)用于保證用戶輸入為正數(shù)的CompareValidator控件。

﹤ script language=“vb” runat=“server” ﹥  Sub btnSubmit_Click(sender as Object, e as EventArgs)  If Page.IsValid then    Response.Write(“﹤ font color=““red””﹥    ﹤ i﹥”& txtPrimeNumber.Text & “is, indeed, a good prime number.    ﹤  /i﹥﹤  /font﹥”)  Else  Response.Write(“﹤ font color=““red””﹥   ﹤ i﹥” & txtPrimeNumber.Text & “is ﹤ b﹥not﹤ /b﹥    a prime number.﹤ /i﹥﹤ /font﹥”)  End If    End Sub    Sub PrimeNumberCheck(sender as Object, args as   ServerValidateEventArgs)  Dim iPrime as Integer = Cint(args.Value),   iLoop as Integer, iSqrt as Integer = CInt(Math.Sqrt(iPrime))  For iLoop = 2 to iSqrt    If iPrime mod iLoop = 0 then  args.IsValid = False  Exit Sub    End If  Next  args.IsValid = True    End Sub  ﹤ /script﹥  ﹤ form method=“post” runat=“server”﹥    Enter your favorite prime number:  ﹤ asp:textbox id=“txtPrimeNumber” runat=“server” /﹥  ﹤ %-- 建立CustomValidator 控件 --%﹥    ﹤ asp:CustomValidator runat=“server”   id=“custPrimeCheck”  ControlToValidate=“txtPrimeNumber”  OnServerValidate=“PrimeNumberCheck”  ErrorMessage=“Invalid Prime Number”/﹥  ﹤ %-- 建立兩個(gè)CompareValidator控件:***個(gè)保證輸入為數(shù)字;  第二個(gè)保證輸入為正數(shù) --%﹥    ﹤ asp:CompareValidator runat=“server”    id=“compPrimeNumber”O(jiān)perator=“DataTypeCheck”    Type=“Integer”    Display=“Dynamic” ControlToValidate=    “txtPrimeNumber”ErrorMessage =    “You must enter an integer value.”/﹥    ﹤ asp:CompareValidator runat=“server”     id=“compPrimeNumberPositive”O(jiān)perator=“GreaterThan”    Type=“Integer”    Display=“Dynamic” ValueToCompare=“0”    ControlToValidate=“txtPrimeNumber”    ErrorMessage =“You must enter a value     greater than zero.”/﹥    ﹤ p﹥﹤ asp:button id=“btnSubmit” runat=    “server”O(jiān)nClick=“btnSubmit_Click” Text=“Submit” /﹥  ﹤ /form﹥

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

ASP.NET數(shù)據(jù)驗(yàn)證控件之客戶端驗(yàn)證

ASP.NET內(nèi)建數(shù)據(jù)驗(yàn)證控件的一大特點(diǎn)就是它們的所有驗(yàn)證都是在客戶端進(jìn)行的,不需經(jīng)過服務(wù)器端,而CustomValidator控件的錯(cuò)誤驗(yàn)證完全是通過服務(wù)器端實(shí)現(xiàn)的。必須意識到的一點(diǎn)是,不管是否通過客戶端實(shí)現(xiàn)數(shù)據(jù)驗(yàn)證,服務(wù)器端的數(shù)據(jù)驗(yàn)證是一定會產(chǎn)生的。增加客戶端驗(yàn)證的功能,只是讓我們的數(shù)據(jù)驗(yàn)證控件更加友好。

為了實(shí)現(xiàn)客戶端驗(yàn)證的功能,我們必須使用JavaScript或者VBScript寫一個(gè)腳本函數(shù),因?yàn)閂BScript只支持IE瀏覽器,因此,這里我們采用JavaScript來編寫這個(gè)函數(shù):

﹤ script language=“JavaScript” ﹥  ﹤ !--    function CheckPrime(sender, args)    { var iPrime = parseInt(args.Value);  var iSqrt = parseInt(Math.sqrt(iPrime));  for (var iLoop=2; iLoop﹤ =iSqrt; iLoop++)    if (iPrime % iLoop == 0)     { args.IsValid = false;   return;    }    args.IsValid = true;    }  // --﹥  ﹤ /script ﹥

在這個(gè)例子里面,我們輸入數(shù)字6,然后按“Tab”按鈕。在高版本的瀏覽器里面,我們將看到來自CustomValidator控件的錯(cuò)誤信息,這樣,我們的CustomValidator控件也就有了客戶端驗(yàn)證功能。在以上代碼中,可能已經(jīng)注意到我們并沒有定義數(shù)據(jù)sender和args的類型,因?yàn)樵谀_本語言中,是沒有嚴(yán)格的數(shù)據(jù)類型定義的。

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

ASP.NET數(shù)據(jù)驗(yàn)證控件CustomValidator的使用總結(jié)

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

以上是“ASP.NET數(shù)據(jù)驗(yàn)證控件CustomValidator怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

文章名稱:ASP.NET數(shù)據(jù)驗(yàn)證控件CustomValidator怎么用
標(biāo)題URL:http://jinyejixie.com/article48/peodep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、標(biāo)簽優(yōu)化企業(yè)網(wǎng)站制作、網(wǎng)站策劃、網(wǎng)站內(nèi)鏈、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
博乐市| 泽普县| 汾西县| 玛多县| 黔南| 湖州市| 勃利县| 麟游县| 华坪县| 宜阳县| 黄浦区| 宜宾市| 米易县| 车险| 化州市| 瓦房店市| 金平| 安图县| 蓬莱市| 昭平县| 嘉义县| 福清市| 定西市| 冀州市| 海伦市| 阳曲县| 澜沧| 新平| 工布江达县| 黎川县| 无棣县| 遂川县| 额尔古纳市| 洛宁县| 孟连| 潞西市| 饶平县| 安福县| 余姚市| 高雄县| 诏安县|