| 方案 | 工作量 | 後台代碼修改 | 靈活度 |
|---|---|---|---|
| 逐頁添加驗證控件 | 大 | 無 | 低 |
| 複合控件 | 中(~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 多選。所有驗證邏輯封裝在控件內部,頁面開發者只需聲明屬性,極大降低重複代碼與維護成本。