天天看點

ASP.NET 環境下的頁面驗證控件

驗證控件用于驗證使用者的輸入,利用這些控件,開發人員可以輕松的實作對使用者輸入的驗證。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。