ASP.NET 驗証控制項心得

108期行動商務C# 後端筆記

後端 驗證器控制項

表單驗証器 控制項解釋:
1.ReqiredFieldValidator(必要欄位驗証器):常用控制項,只驗証是不是「空值
2.CompareValidator(比較証驗証器):用於格式驗証 
  三大應用
  屬性 Operator(比較方式) 先指定比較方式 在指定 type 格式
  屬性 ValueToCompare(值的比較)
  屬性 ContorToCompare(跟控制項做比較)
ex1:生日欄位如果有「值」但格式不對觸發
ex2:密碼確認欄位,流程->先設定ControlToValidate先驗証「密碼」欄位是否有值,再設定ContorToCompare做跟「確認密碼欄位」做比較。
3.RangeValidator(限定範圍驗証器) 如果二邊大小的值是死不用寫程式,如果是活的要寫程式
  屬性 MinmumValue(最小值)
  屬性 MaxmumValue(最大值)
4.RagularExpressionValidator(正規化驗証器)
  重點:只能驗証格式不能驗証「合不合法
  使用情形:RangeValidator跟CompareValidator無法驗証 ex:信箱欄位,帳號欄位。  
  屬性:ValidationExpression (標準表達式)
  符號規則[]限定範圍ex [A-C]<==只能輸入ABC
  符號規則{}出現次數ex [A-Za-z0-9]{4}<==至少輸入4次 {8,12}最少8 最多12
  符號規則()比對使用ex (1|2)<==輸入 1 or 2     
5.CustomValidator(自訂驗証) 
  使用情形:無法使用前幾種方法驗証合法性「規則」時,才使用CustomValidator. ex:身份証字號驗証是否合法
  屬性:onServerValidate(傳送至伺服端驗証)->需寫後置程式碼 onServerValidate="新的事件"
  重要:使用CustomValidator時,必須要把ControlToValidate屬性移除,否則會影響驗証結果。
  原因:因為CustomValidator驗証是自訂編碼,不須要再執行ControlToValidate的驗証值。
  後置程式碼注意事項:
  1.使用onServerValidate時,靠args(伺服器端驗証事件也是個物件)來驗証傳進來的參數是否合法
  2.args物件屬性 IsValid(以布林值判斷是否合法) ex:args.IsValid="true" 為合法

 
共用屬性:
 <1>ErrorMessage ->驗証錯誤時要出現的訊息
 <2>ControlToValidate(控制驗證)->驗証控制項欄位的ID。這是相當重要的屬性,這個屬性在決定被驗証的控制項。 
 <3>ForeColor(顏色設定)
 <4>Font-Size(文字大小)
 <5>Display(輸出)=>用來調整錯誤訊息跑版,預設為Static(靜態),如果遇跑版設定為Dynamic(動態),請不要設定在「最後一個驗証」
 <6>Type資料格式


 


補充資料:
(1).DropDownList不是用「ReqiredFieldValidator」來直接驗証必須用CompareValidator(比較証驗証器)
    原因:因為DropDownList預設會停在第一個選項,所以一定會有「值」。 
(2).ListBox不是用「ReqiredFieldValidator」來直接驗証必須用CustomValidator(自訂驗証)
    原因:因為ListBox另一邊會永遠空值,必須使用CustomValidator(自訂驗証)。 
(3).如果有多個Button在表單上,需要排除postback驗証,可以設定CausesValidation="false"(中譯:導致驗証開關)
    還有要在必須在form標簽上設定defaultbutton設定要觸發的button
(4).假設還要驗証器除了要驗証是否「空值」還要驗証「格式」就須要第二個驗証器
(5).屬性placeholder==>該屬性可在文字框中顯示提示訊息
(6).如果要抓取現在的時間:Datetime.Now, 轉字串語法:ToString()。
(7).如果要在 TextBOX 物件中限定長度,使用屬性MaxLength

 

https://atedev.wordpress.com/2007/11/23/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%A4%BA%E5%BC%8F-regular-expression/