驗證控件用于驗證使用者的輸入,利用這些控件,開發人員可以輕松的實作對使用者輸入的驗證。ASP.NET提供了六種驗證控件。
1.Required Field Validator:驗證輸入是否為空的控件。
主要屬性:
Control To Validate:表示要進行檢查的控件ID。此屬性必須設定為輸入控件的ID,否則會發生異常。另外該ID所代表的控件必須和驗證控件在同一個容器中。
Error Message:表示當檢測不合法時,出現的錯誤提示資訊。
Display:表示錯誤的顯示方式,取值有Static、Dynamic和None。Static表示控件的錯誤提示資訊(Error Message)在頁面中占有固定的位置,如果沒有錯誤,他的顯示類似label;Dynamic表示控件的錯誤資訊出現時才占用頁面位置;None表示控件的錯誤資訊出現時不顯示,但可以在Validator Summary中顯示。
2.Range Validator:範圍驗證控件。
測試某個輸入的值是否在指定的範圍内。除了與Required Field Validator相同的屬性外,還有:
Maximum Value範圍的最大值
Minimum Value範圍的最小值
Tyep輸入值的資料類型。
3.Compare Validator:比較驗證控件。
用于将某個使用者輸入與Web窗體中其他控件的值或者常數進行比較。
基本屬性:
Control To Validate:要被驗證的控件ID;
Value To Compare:用來比較的常數值;
Control To Compare:用來比較的控件ID;
Type:比較的資料類型;
Operator:比較操作類型;
Operator有7個可選屬性值,詳見下表:
值 | 說明 |
Equal | 相比較的兩個值相等,通過驗證。 |
Not Equal | 相比較的兩個值不相等,通過驗證。 |
GreaterThan | 當被驗證的值(Control To Validate屬性所指向控件的值)大于指定的常數(Value To Compare)或指定控件(Control To Compare)的值時,驗證通過。 |
Greater Than Equal | 當被驗證的值(Control To Validate屬性所指向控件的值)大于等于指定的常數(Value To Compare)或指定控件(Control To Compare)的值時,驗證通過。 |
Less Than | 當被驗證的值(ControlToValidate屬性所指向控件的值)小于指定的常數(ValueToCompare)或指定控件(ControlToCompare)的值時,驗證通過。 |
Less Than Equal | 當被驗證的值(Control To Validate屬性所指向控件的值)小于等于指定的常數(Value To Compare)或指定控件(Control To Compare)的值時,驗證通過。 |
Data Type Check | 當被驗證的值(Control To Validate屬性所指向控件的值)與指定的常數(Value To Compare)或指定控件(Control To Compare)的值類型相同時,驗證通過。 |
4.RegularExpressionValidator:正規表達式驗證控件。
提供一個正規表達式編輯器,在屬性視窗中的ValidationExpression。使用這個控件可以驗證比如電子郵件、身份證号碼、URL等格式字元串。
5.Custom Validator:使用者自定義驗證控件。
On Server Validate事件是使用者自定義的驗證函數,形式如下:
protected void Custom Validator1_Server Validate(object source, Server Validate Event Args args)
{
}
如果args.Is Valid=true,則表示驗證通過,否則表示驗證失敗。
6.Validation Summary:彙總顯示驗證控件。
幾個值得注意的屬性:
Header Text:驗證摘要頁的标題部分顯示的文本。
Show Summary:用于指定是否在頁面上顯示摘要。
Show Message Box:用于指定是否顯示一個消息對話框來顯示驗證的摘要資訊。
Display Mode:用于設定驗證摘要顯示的模式,可取下列的幾個值:
Bullet List:預設的顯示模式,每個錯誤提示消息都顯示為單獨的項;
List:每個顯示資訊都顯示在不同行中;
Single Paragraph:所有的錯誤提示資訊都顯示在同一段中。
7.屏蔽驗證功能
在一般情況下,ASP.NET的驗證會自動開啟驗證功能,使用者送出時,如果驗證沒有通過,那麼無法送出資料。但有時候需要允許使用者即使在沒有通過驗證也能發送資料。例如:單擊“取消”按鈕并不需要所有的資料都通過驗證的情況下才能送出資料。
在這種情況下,為了針對某個控件屏蔽伺服器端和用戶端驗證,可以使用下列兩種方法在不觸發驗證控件的情況下會送資料。
1)将控件的CausesValidation屬性設定為false。例如:建立“取消”按鈕,使其不觸發驗證檢查。
2)如果要屏蔽用戶端驗證而隻執行服務端驗證,可以将這個驗證控件設定為不生成用戶端腳本;如果要在驗證前執行一些伺服器代碼,可以将該控件的Enable Client Script屬性設定為false。