目前驗證控制項有很多,其實大部份都可以應付一般的需求,但是總是會有特別的需求,這時候就需要用到自訂驗證控制項了(CustomValidator),自訂驗證控制項可以在Client端及Server端做驗證。
接下來就以驗證mail格式實例在說明吧
1.Client端做驗證
以下是我先建立好一個TextBox以及一個必填欄位驗證(RequiredFieldValidator),都要驗證mail格式所以一定要是必填欄位,第二個證驗我加入了自訂驗證(CustomValidator)。
屬性設定說明
controltovalidate:需要驗證哪一個控制項的設定,此屬性一定要設定否則會報錯
errormessage:不通過的錯誤訊息
clientvalidationfunction="CheckMail": 要做自訂驗證的function名稱,這裡要填的是Client端的function名稱。
function裡面的驗證是在網路上找來的正規式驗證,做好這樣的設定就大功完成啦!!
在function裡面的接受參數source, args都是跟ASP.NET的驗證控制項用法一樣喔。
mail:
2.Server端做驗證
屬性設定說明
與Client不同之處在於,onservervalidate設定。
後端驗證裡的args.IsValid為回傳的驗證結果。
後端cs Code
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
if (CheckMail(args.Value) == false)
{
args.IsValid = false; //驗證結果
}
}
private bool CheckMail(string ck_string)
{
//加入驗證內容
return true;
}
以上就可以做到前/後端一起驗證輸入的資料是否正確,好的驗證控制項可以阻擋垃圾資料的輸入,造成資料庫的負擔,所以這是很重要的喔!!
Read more...