驗證控件用於驗證用戶的輸入,利用這些控件,開發人員可以輕松的實現對用戶輸入的驗證。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。使用這個控件可以驗證比如電子郵件、SFZ號碼、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。