在上一篇文章中,我們講解了有關實現驗證控件的一些知識。那些內容將為開發人員實現驗證控件奠定一定基礎。為了幫助讀者更好的理解驗證控件的實現 方法,本文將首先介紹常見驗證控件的實現步驟,然後,通過一個典型示例說明 驗證控件的實現方法。
1. 驗證控件實現步驟
在創建驗證控件過程中,需要實現服務器端驗證和客戶端驗證等核心內容。 下面列舉了驗證控件的常見實現步驟。
(1)驗證控件類應由BaseValidator基類繼承。這樣可使驗證控件自動繼承 參與驗證框架所需要的功能。例如,通過繼承BaseValidator的 ControlToValidate屬性,實現驗證控件與驗證目標控件的關聯。
(2)實現驗證控件所特有的一些屬性。開發人員可根據應用需求,從方便實 用的角度出發定義這些特有屬性。
(3)重寫AddAttributesToRender方法,將特有屬性及相關內容添加到控件 呈現中。當實現客戶端驗證代碼時可能需要引用相關呈現內容。
(4)重寫EvaluateIsValid方法,為驗證控件添加服務器端驗證邏輯。
(5)重寫PreRender事件的事件處理方法OnPreRender,除調用基類實現方法 外,還要實現對客戶端驗證腳本文件的注冊。
(6)編寫與驗證控件一起打包的客戶端驗證腳本文件,並且將其放置到正確 的目錄中。
通過以上的一個或者幾個步驟,開發人員就可以實現一個基本的驗證控件。 在實現過程中,服務器端驗證邏輯和客戶端驗證邏輯必須保持一致,否則,即使 輸入數據通過了客戶端驗證,也無法通過服務器端驗證。下面將通過一個典型實 例來進一步說明驗證控件的實現方法,以加深讀者的理解。
2、典型應用
本節將使用上文所介紹的開發驗證控件的方法,創建一個名為 TelNumValidator的驗證控件。該控件用於驗證用戶輸入的電話號碼是否符合規 則。如果不符合規則,那麼動態提示錯誤信息。其效果如圖1。
圖1 效果圖(輸入錯誤狀態下)