自認為做了幾年Web,就很瞭解Asp.net,但最後才發現不是這個樣子的。首先沒有系統的學習,其次沒有深入的實踐,從學校到公司,一直在使用別人寫好的控制項,甚至在很長一段時間,想寫幾個輪子出來。自嘲自己的物質之後,開始慢慢的瞭解這些內容。前些天瞭解了一下驗證控制項,記錄下來,希望以後忘記的時候可以舒適起來。
微軟提供六個驗證控制項,更準確的說是五個驗證控制項和一個集中顯示控制項。在這些控制項中,最簡單的莫過於RequiredFieldValidator 控制項,這個控制項是驗證必填項的,當驗證的控制項沒有輸入資料時,就會驗證失敗,從而無法繼續執行。這個控制項會在用戶端和伺服器段分別進行驗證;其次是RegularExpressionValidator 控制項,這個控制項需要一個Regex,ValidationExpression屬性是驗證的Regex,這個控制項同樣會進行伺服器和用戶端的同時驗證,除非用戶端不支援js,或者顯示指出只進行伺服器驗證才可以阻止用戶端驗證。
另外一個驗證控制項是CustomValidator 控制項,這個只能在伺服器端進行驗證,它的驗證方式非常靈活,當觸發驗證時,會執行伺服器的一個方法,這個方法需要在OnServerValidate中指定,並在後台代碼中進行驗證,在這段代碼中需要為args.IsValid賦值,true或者false,驗證成功或失敗,就這麼簡單。
另外兩個是CompareValidator 控制項和RangeValidator 控制項,第一個是用來比較的,可以將輸入控制項的值同常數值或其他輸入控制項的值相比較,以確定這兩個值是否與由比較子(小於、等於、大於等等)指定的關係相匹配。第二個是用來計算輸入資料,驗證是否在指定一個範圍內。
最後說明,所有控制項都有一個ControlToValidate屬性,指定要驗證的控制項,ValidationGroup屬性,指定一個驗證組,在需要出發驗證的地方,例如Button,也將這個屬性設定相同。這樣就可以完成驗證了。
至於ValidationSummary 控制項,則是在一起顯示驗證資訊的。就這樣吧,希望若干年以後不會忘記。