Visual Studio有基本的驗證控制項可以使用
(注意驗證控制項一定要指定要驗證的輸入控制項,不能單獨存在)
這些控制項可以設定要用Client端驗證還是Server端驗證
有個EnableClientScript可以調是否要用Client端驗證
RequiredFieldValidator
是驗證是否有輸入必要的值
必要的值用IntialValue來設定,如果設定5的話就只能輸
入5以外的值才能通過驗證
RangeValidator
可以檢查一個範圍的值,如果是數字的話他的Type要改為Integer喔
CompareValidator
比較兩個欄位的值,最典型的就是用在密碼和密碼確認兩個欄位
設ValueToCompare跟ControlToCompare和Type和Operator
RegularExpressionValidator
用RegularExpression來驗證,不過那個語法有點複雜=.=
CustomValidator
可以自訂的控制項
兩種,一種是Client端驗證
在ClientValidationFunction打入JavaScript的函式名字
例:
<script type="text/javascript">
function MyClient(sender,e)
{ //e.Value是控制項內輸入的值
if(e.Value==5)
e.IsValid=true; //e.IsValid=true的話是代表通過驗證
else
e.IsValid=false;
}
第二種是Server端的驗證
利用CustomValidator提供的ServerValidator事件來做
protected void CustomValidator1_ServerValidate(object sender,
EventArgs args)
{
if(int.Parse(args.Value)==5)
args.IsValid=true;
else
args.IsValid=false;
}
</script>
ValdationSummary是可以把所有控制項的ErrorMessage都集合起來顯示
的控制項,如果要讓其他驗證控制項顯示出訊息的話,要打在Text屬性,
如果打在ErrorMessage的屬性的話,會顯示到ValdationSummary裡
//下面這個可以列出所有的驗證控制項,在判斷是否驗證通過
foreach(Ivalidator vaor in Page.Validator)
{
if(!vaor.IsValid)
Response.Write(vaor.ErrorMessage);
}
//Button的CausesValidation屬性可決定是否觸發驗證
//控制項都有一個ValidationGroup屬性,都設定一樣的話就是
同一個群組了,此群組的驗證就只會在此群組發生
//Page.Validate可以讓所有驗證控制項進行驗證(Server端)
//Page.IsValid可以看出所有控制項是否通過驗證(Server端)