1.RequiredFieldValidator:非空驗證控制項
主要屬性:
ControlToValidate :要驗證的控制項ID
ErrorMessage :驗證的控制項無效時顯示的訊息
InitialValue :要驗證的欄位的初始值,很少用到
2.CompareValidator:比較驗證控制項
主要屬性:
ControlToCompare :用於進行比較的控制項ID
ControlToValidate :要驗證的控制項ID
ErrorMessage :驗證的控制項無效時顯示的訊息
Operator :對值進行比較操作,預設為Equal(=)
Type:用於比較的值的資料類型
|
Operator 屬性 |
說明 |
|
Equal |
所驗證的輸入控制項的值與其他控制項的值或常數值之間的相等比較。 |
|
NotEqual |
所驗證的輸入控制項的值與其他控制項的值或常數值之間的不等比較。 |
|
GreaterThan |
所驗證的輸入控制項的值與其他控制項的值或常數值之間的大於比較。 |
|
GreaterThanEqual |
所驗證的輸入控制項的值與其他控制項的值或常數值之間的大於或等於比較。 |
|
LessThan |
所驗證的輸入控制項的值與其他控制項的值或常數值之間的小於比較。 |
|
LessThanEqual |
所驗證的輸入控制項的值與其他控制項的值或常數值之間的小於或等於比較。 |
|
DataTypeCheck |
輸入到所驗證的輸入控制項的值與 Type屬性指定的資料類型之間的資料類型比較。如果無法將該值轉換為指定的資料類型,則驗證失敗。 |
如果Operator屬性為DataTypeCheck,將忽略ControlToCompare 和 ValueToCompare屬性,同時Type屬性起作用。
| Type屬性 |
說明 |
|
String |
指定字串資料型別。 |
|
Integer |
指定 32 位有符號整數資料類型。 |
|
Double |
指定雙精確度浮點數資料類型。 |
|
Date |
指定日期資料類型。 |
|
Currency |
指定貨幣資料類型 |
3.RangeValidator:資料範圍驗證控制項
主要屬性:
ControlToValidate :要驗證的控制項ID
ErrorMessage :驗證的控制項無效時顯示的訊息
MaximumValue:所驗證控制項的最大值
MinimumValue:所驗證控制項的最小值
4.RegularExpressionValidator:資料格式驗證控制項
主要屬性:
ControlToValidate :要驗證的控制項ID
ErrorMessage :驗證的控制項無效時顯示的訊息
ValidationExpression:用於確定有效性的Regex,系統預設提供了幾個Regex,如果需要自己建立,就要瞭解Regex的意義,推薦一篇網摘:Regex整理備忘
| Regex |
說明 |
| 方括弧“[ ]” |
用與定義可接受的字元。[abc123] 表示控制項只能接受 a,b,c,1,2,3 這6個字元 |
| 反集合符號 “ ^ ” |
用於定義不可以接受的字元。[^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)”的電話區號 |
5.ValidationSummary:驗證錯誤資訊顯示控制項
主要屬性:
DisplayMode:摘要顯示格式
ShowMessageBox:是否彈出錯誤的訊息對話方塊
ShowSummary:是否顯示錯誤摘要文本
6.CustomValidator:自訂驗證控制項
主要屬性:
ControlToValidate :要驗證的控制項ID
ErrorMessage :驗證的控制項無效時顯示的訊息
ValidateEmptyText:控制項文本為空白時,是否驗證控制項
ClientValidationFunction:用戶端指令碼驗證功能,預設為空白。如希望在伺服器添加驗證,則使其為空白並填寫ServerValidate事件,如希望在用戶端添加驗證,則該屬性值為JavaScript的function名。
主要事件:
用戶端驗證:ClientValidationFunction="clientv"
<script type="text/jscript">
function clientv(s,e)
{
if(e.Value=="用戶端")
{
e.IsValid=true;
}
else
{
e.IsValid=false;
}
}
</script>
伺服器驗證:ClientValidationFunction=""
ServerValidate:調用以在伺服器上執行驗證;雙擊控制項或者選用事件。
例題:判斷輸入是否為偶數
1protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
2 {
3 try
4 {
5 //如果輸入的值為偶數,則驗證通過。args.Value:需要驗證的控制項的值
6 if ((Convert.ToInt32(args.Value) % 2) == 0)
7 {
8 //是否通過驗證
9 args.IsValid = true;
10 }
11 else
12 {
13 args.IsValid = false;
14 }
15 }
16 catch(Exception e)
17 {
18 args.IsValid = false;
19 }
20 }
21
22
7.禁用驗證控制項
在特定條件下,可能需要避開驗證,可以通過以下3種方式禁用資料驗證:
- 在特定控制項中禁用驗證:將相關控制項的CausesValidation屬性設定為false
- 禁用驗證控制項:將驗證控制項的Enabled屬性設定為false
- 禁用用戶端驗證:將驗證控制項的EnableClientScript屬性設定為false