首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

動態控件模擬複合控件(一):聲明式驗證控件家族設計

     編輯:關於ASP.NET

三種方案對比

方案工作量後台代碼修改靈活度
逐頁添加驗證控件大無低
複合控件中(~1/3)需修改控件類型聲明中
動態控件繼承 TextBox中無需修改高

動態控件使用範例

<!-- 必填 -->
<facade:StringTextBox Options="required" HelpMessage="請輸入用戶名" DisplayName="用戶名" 
    runat="server" ID="StringTextBox1" MaxLength="30" /><br />

<!-- 必填,僅數字 -->
<facade:StringTextBox Options="required,Filtered" FilterType="Numbers" 
    HelpMessage="請輸入年齡" DisplayName="年齡" runat="server" ID="StringTextBox2" MaxLength="3" /><br />

<!-- 數值範圍 0-400 -->
<facade:NumberTextBox runat="server" ID="tbCount" MinValue="0" MaxValue="400" 
    DisplayName="數量" HelpMessage="請輸入數量" />

<!-- 金額範圍 0-400 -->
<facade:MoneyTextBox runat="server" ID="tbAmount" MinValue="0" MaxValue="400" 
    DisplayName="金額" HelpMessage="請輸入金額" />

<!-- 正則驗證:以 ABC 開頭 -->
<facade:RegexTextBox runat="server" Options="Required" ValidationExpression="^abc.+$" 
    ID="tbRegex" DisplayName="正則測試" MaxLength="120" Example="abc123,abceee" HelpMessage="請輸入" />

<!-- 手機號 -->
<facade:PhoneTextBox runat="server" ID="tbMobile" PhoneTypes="Mobile" 
    DisplayName="手機號" MaxLength="20" Example="13988888888" HelpMessage="請輸入手機號" />

核心設計點

  • Options 屬性:逗號分隔的功能標記,如 required,Filtered。
  • FilterType:Numbers、Letters 等,對應 FilteredTextBoxExtender。
  • ValidationExpression:正則驗證支援。
  • PhoneTypes:Mobile、Phone、Phone,Mobile 多選。

所有驗證邏輯封裝在控件內部,頁面開發者只需聲明屬性,極大降低重複代碼與維護成本。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved