閱讀673 返回首頁    go 阿裏雲 go 技術社區[雲棲]


初識ASP.NET---ASP.NET中驗證控件的用法

一、前言


        在Web應用程序中,大都是對數據的提供或收集,對於數據的有效性驗證是非常重要的,驗證就是給所收集的數據應用的一係列規則。
        為進行有效性驗證而收集的數據來自於在應用程序中提供的Web窗體,Web窗體由不同的類型的HTML元素組成,可以對窗體元素應用不同的驗證規則,對元素應用的規則越多,應用到數據上的有效性驗證就越嚴格。
         驗證可以有客戶端和服務器段的驗證。客戶端的驗證主要是用JavaScript腳本,效率高,響應時間短,但安全性不好;服務器段的驗證主要是用C#語言在後台驗證,安全高了,但每次提交都要把數據傳到後台,太慢。
        ASP.NET不僅把窗體的驗證作為服務器控件引入,還使這些控件智能化。如果瀏覽器支持JavaScript,而ASP.NET可以發送JavaScript,驗證就在客戶端進行;如果客戶機不支持用於驗證的JavaScript,這些JavaScript就被忽略,驗證就在服務器上進行。


二、ASP.NET驗證控件


        在ASP.NET中驗證控件如下:

驗證類型

使用的控件

說明

必填字段驗證

RequiredFieldValidator

確保用戶不會跳過某一項輸入。

比較驗證

CompareValidator

將用戶輸入與一個常數值或者另一個控件或特定數據類型的值進行比較(使用小於、等於或大於等比較運算符)。

範圍驗證

RangeValidator

檢查用戶的輸入是否在指定的上下限內。可以檢查數字對、字母對和日期對限定的範圍。

正則表達式驗證

RegularExpressionValidator

檢查項與正則表達式定義的模式是否匹配。此類驗證使您能夠檢查可預知的字符序列,如電子郵件地址、電話號碼、郵政編碼等內容中的字符序列。

自定義驗證

CustomValidator

使用您自己編寫的驗證邏輯檢查用戶輸入。此類驗證使您能夠檢查在運行時派生的值。

驗證總結

ValidationSummary

以摘要的形式顯示頁上所有驗證程序的驗證錯誤。

        下麵,我們來看這些控件的使用


1、RequiredFieldValidator(必填字段驗證)的使用


        當頁麵上的控件要求必須輸入數據時,RequiredFieldValidator就起作用了,ControlToValidate屬性選擇需要驗證的控件,而ErrorMessage屬性則是校驗不合法後顯示的錯誤提示信息。
  RequiredFieldValidator控件使用的標準代碼如下:

<asp:RequiredFieldValidator ID="Validator_Name" runat="Server" ControlToValidate="要檢查的控件名" ErrorMessage="出錯信息" Display="Static|Dymatic|None">占位符</asp:RequiredFieldValidator>

        在以上標準代碼中:
        ControlToValidate:表示要進行檢查控件ID;
        ErrorMessage:表示當檢查不合法時,出現的錯誤信息;
        Display:錯誤信息的顯示方式;Static表示控件的錯誤信息在頁麵中占有肯定位置;Dymatic表示控件錯誤信息出現時才占用頁麵控件;None表示錯誤出現時不顯示,但是可以在ValidatorSummary中顯示;
        占位符:表示Display為Static時,錯誤信息占有"占位符"那麼大的頁麵空間; 

        現在,讓我們看一個實例:

<asp:TextBox ID="txtName" runat="Server" />
<asp:RequiredFieldValidator ID="Validator1" runat="Server" ControlToValidate="txtName"ErrorMessage="姓名必須輸入" Display="Static">*姓名必須輸入 </asp:RequiredFieldValidator>

        在以上例子中,檢查txtName控件是否有輸入,如果沒有,顯示錯誤信息"姓名必須輸入"。

        注意:以上代碼和下麵其他控件的代碼最好放入Form中,和ASP中不一樣的是,Form最好寫為這樣:
<Form RunAt="Server">其他代碼</Form> 
        這樣,Form在服務器端執行,提交才會有效;


2、CompareValidator(比較驗證)控件


        CompareValidator控件是用來比較兩個輸入控件之間的數據一致性的,同時也可以用來校驗控件中內容的數據類型:如整形、字符串型等。ControlToCompare和ControlToValidate屬性用來設置進行比較的兩個控件。
        比較控件比較兩個控件的輸入是否符合程序設定

        CompareValidator控件的標準代碼如下:

<asp:CompareValidator ID="Validator_ID" runat="Server" ControlToValidate="要驗證的控件ID" ControlToCompare="要比較的控件ID" ErrorMessage="錯誤信息" Type="String|Integer|Double|DateTime|Currency" Operator="Equal|NotEqual|GreaterThan|GreaterTanEqual|LessThan|LessThanEqual|DataTypeCheck" Display="Static|Dymatic|None">占位符</asp:CompareValidator>

        在以上標準代碼中:
        Type:表示要比較的控件的數據類型;
        Operator:表示比較操作,這裏,比較有7種方式;ControlToValidate 屬性必須位於比較運算符的左邊,ControlToCompare屬性位於右邊,才能有效進行計算。

        下表顯示可用操作。

        DataTypeCheck: 檢查兩個控件的數據類型是否有效。

        Equal:檢查兩個控件彼此是否相等。

        GreaterThan:檢查一個控件是否大於另一個控件。

        GreaterThanEqual:檢查一個控件是否大於或等於另一個控件。

        LessThan:檢查一個控件是否小於另一個控件。

        LessThanEqual:檢查一個控件是否小於或等於另一個控件。

        NotEqual:檢查兩個控件彼此是否不相等。


3、RangeValidator(範圍驗證)控件


        RangeValidator控件可以用來判斷用戶輸入的值是否在某一特定範圍內,屬性MaximumValue和MinimumValue用來設定範圍的最大和最小值。驗證輸入是否在一定範圍,範圍用MaximumValue和MinimunVlaue來確定。

        RangeValidator控件標準代碼如下:

<asp:RangeValidator ID="Vaidator_ID" runat="Server" ControlToValidate="要驗證的控件ID"Type="String|Integer|Double|DateTime|Currency" MinimumValue="最小值" MaximumValue="最大值"ErrorMessage="錯誤信息" Display="Static|Dymatic|None">占位符 </asp:RangeValidator>

        在以上代碼中:
  用MinimumValue和MaximumValue來界定控件輸入值得範圍,用type來定義控件輸入值的類型。


4、RegularExpresionValidator(正則表達式)控件


        RegularExpressionValidator控件可以判斷用戶輸入的表達式是否正確,如電話號碼、郵編、URL等,ControlToValidate屬性選擇需要驗證的控件,ValidationExpression屬性則編寫需要驗證的表達式的樣式,下麵的例子就是一段校驗郵編的代碼。
  正則表達式驗證控件的功能非常強大,我們先來看看標準代碼:

<asp:RegularExpressionValidator ID="Validator_ID" runat="Server" ControlToValidate="要驗證控件名" ValidationExpression="正則表達式" ErrorMessage="錯誤信息" Display="Static|Dymatic|None">占位符</asp:RegularExpressionValidator>

        在以上標準代碼中,ValidationExpression是重點,現在來看看它的構造:
        在ValidationExpression中,不同的字符表示不同的含義:
        星號"*":表示和其他表達式一起,表示容易組合;
        方括號“[ ]”:用與定義可接受的字符。[abc123]表示控件隻能接受 a,b,c,1,2,3 這6個字符;[A-Z]表示任意大寫字母;
        反集合符號“ ^ ”:用於定義不可以接受的字符。[^a-h]表示控件除了 a 到 h 8個字符外,都可以接受;
        花括號“{ }”:定義必須輸入的字符個數。{6}表示隻能輸入6個字符 ; {6,}表示必須輸入6個以上,無上限 ; {2,6} 表示必須輸入2至6個字符;但是花括號必須放在方括號後麵,例如 [a-z]{4} 表示必須輸入 4位a和z之間的任意字符。
        小圓點“ . ”:用於代表任意字符。 例如 .{3,6}表示接受3到6個任意字符。
        豎線“ | ” :用於表示 “或”的邏輯符號。例如[1-9]{3,6}|[A-Za-z]{3} 表示可以接受 3到6個數字或者 3個字母。(大小寫都可以區別的哦)
        小括號“()” :用於分塊,與數字運算中的小括號作用類似。
        斜線“ \ ” :若希望可以接受的字符包含上述特殊字符。例如 \([0-9]{3}\),表示輸入格式為“(xxx)”的電話區號。

        注意,在以上表達式中,引號不包括在內;
        舉例:正則表達式:".*[A-Z]"表示數字開頭的任意字符組合其後接一個大寫字母。


5、CustomValidator(自定義驗證)控件


        CustomValidator控件用於執行用戶自定義的驗證,這種校驗既可以是服務器端的也可以是客戶端的,下麵的代碼就是使用客戶端驗證郵編的例子。
該控件用自定義的函數界定驗證方式,其標準代碼如下:

<asp:CustomValidator ID="Validator_ID" runat="Server" ControlToValidate="要驗證的控件"OnServerValidate="服務器段驗證函數" ClientValitationFunction="客戶段驗證函數" ErrorMessage="錯誤信息" Display="Static|Dymatic|None"></asp:CustomValidator>占位符 </asp:CustomValidator>

        以上代碼中,用戶必須定義一個函數來驗證輸入。


6、ValidationSummary(驗證總結)控件


  該控件不對Web窗體中輸入的數據進行驗證,而是收集本頁的所有驗證錯誤信息,並可以將它們組織以後再顯示出來。這個控件會將頁麵中所有的校驗錯誤輸出為一個列表,列表的顯示方式由DisplayMode屬性設置。其標準代碼如下:

<asp:ValidationSummary ID="Validator_ID" runat="Server" HeaderText="頭信息" ShowSummary="True|False" DiaplayMode="List|BulletList|SingleParagraph" />
        在以上標準代碼中,HeadText相當於表的HeadText,DisplayMode表示錯誤信息顯示方式:List相當於HTML中的<BR>;BulletList相當於HTML中的<LI>;SingleParegraph表示錯誤信息之間不作如何分割。
        如下代碼,將錯誤信息顯示在一個對話框中。

<asp:ValidationSummary ID="Validator_ID" runat="Server" HeaderText="ValidationSummaryName" ShowSummary="False" ShowMessageBox="True" />

        對以上6個驗證控件需要補充說明的如下:

        可以通過Page的屬性ClientTarget可以設置所有的驗證控件是否會在客戶端驗證。隻要將這個屬性設置為UpLevel就可以了,DownLevel下,所有的驗證都隻會在服務器上執行了。默認情況下,大多數瀏覽器都是會在客戶端驗證的,所以我並不知道它的這個屬性是不是默認UpLevel了。當然,如果要為單獨的一個或幾個驗證控件設置的話,那麼還是使用原先的EnableClientScript。另外還增加了一個SetFoucsOnError屬性。就是當出錯的時候將焦點移到控件上。這樣就不會使用戶在點擊了按鈕之後因為沒看到錯誤提示而在那發愣了。另外一個就是CustomValidator增加了ValidateEmptyText屬性來讓用戶自定義驗證控件在值為空時也驗證。ValidationGroup 屬性規定了驗證過程中被驗證的控件組。將你在一個按鈕點擊時要驗證的控件設置為同一個組名,而另一個按鈕要驗證的設置為另一個名,這樣就可以使點擊一個按鍵時隻發生期望的驗證,而不是所有的驗證。有些情況下客戶不想顯示文字而是圖片或聲音時,驗證控件的ErrorMessage屬性的值可以是一個HTML字符串,例如errorMessage=’<img src=”picture.gif”>’,這樣可使頁麵生動。驗證控件的display設為none.SummaryValidator的showSummary=false,showmessagebox=true;即可像JAVASCRIPT那樣彈出消息框了.


         本想自己在網上查查資料自己總結一篇ASP.NET驗證控件的使用方法的但是大家把能寫得都寫了,我在總結也不會有什麼新意,還有可能增加網絡上的垃圾。這篇文章是我認為寫得不錯了,轉載了分享給大家,希望能給像我一樣的初學者幫助。文章的原始作者沒有找到,但依然感謝他(她)的分享。

最後更新:2017-04-03 05:38:56

  上一篇:go 九度題目1325:Battle Over Cities
  下一篇:go 12306網站購票後台:43%訂單未完成支付