CustomValidator自訂驗證控制項

2012年6月10日 星期日

目前驗證控制項有很多,其實大部份都可以應付一般的需求,但是總是會有特別的需求,這時候就需要用到自訂驗證控制項了(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;
    }
以上就可以做到前/後端一起驗證輸入的資料是否正確,好的驗證控制項可以阻擋垃圾資料的輸入,造成資料庫的負擔,所以這是很重要的喔!!

0 意見: