asp.net中資料校正部分的封裝與應用

來源:互聯網
上載者:User
我們的業務系統涉及到較多的表單編輯與校正,最簡單的辦法是使用asp.net內建的資料校正控制項即可,但這樣有以下3個問題:

  1 校正控制項要在設計時加入到表單上,並手工設定:資料類型,錯誤資訊等屬性,比較繁瑣。
 2 對於一個輸入框,我們可能要檢查多項,如:必填,必須是日期格式,並且要大於2007-1-1。這樣就需要加入多個校正控制項。
 3 商務規則和表單綁定在一起,不利於維護和重用。 我們希望的校正功能是: 1 校正規則和表單脫離,表單上畫好輸入框即可,校正控制項會在運行時,根據設定檔動態建立。
 2 根據驗證規則,產生預設的:不可為空,錯誤的數字類型,必須在1到100之間這樣的提示資訊。
 3 靈活的驗證規則運算式:如: range(1, 200) , >=0.5 , Mail(), Mobile()。目前不支
   持 and, or 這樣的條件,但容易擴充。 為此我們封裝了這部分的功能,使用時只要:  在xml檔案中設定好:控制項名稱,資料類型,是否必填,驗證運算式資訊。
   <ValidateInfo>
      <ControlName>排口數量</ControlName>
      <DataType>Integer</DataType>
      <Require>true</Require>
      <Expression>range(1, 100)</Expression>/Files/BoKeRen/validatetest.rar
   </ValidateInfo>
 
  在page的Page_Init事件中,調用類方法:
   ValidateHelper.LoadFromFile("資料校正_配置.xml") 即可。

類設計:
 // 配置資訊類
 class ValidateInfo
 {
      public string ControlName;
      public ValidationDataType DataType;
      public string ErrorMessage;
      public bool Require;
      public string Expression;
 }
 
 // 校正控制項建立工廠
 public class ValidatorFactory
 {
  CreateRequiredFieldValidator();
  CreateDateTypeCheckValidator();
  CreateRangeValidator(string min, string max);
  CreateCompareValidator(ValidationCompareOperator oper, string valueToCompare);
  ...
 }
 
   // 校正規則解析器,根據配置資訊,建立校正控制項
   public class ValidatorParser
   {
    Parse(ValidateInfo info, ValidatorFactory factory);
    ...
   }
   
   // 讀取配置資訊,並綁定校正控制項到表單
   public class ValidateHelper
   {
    LoadFromFile(Page page, string fileName)
   }
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.