作者:Dflying Chen (http://dflying.cnblogs.com/)
註:本系列文章比較基礎,基本為Atlas官方文檔的翻譯,熟悉Atlas的朋友可以跳過。
本系列有三篇文章:
- ASP.NET Atlas簡單控制項介紹——Sys.Component基類與Sys.UI.Control基類
- ASP.NET Atlas簡單控制項介紹——InputControl,TextBox,Button和CheckBox
- ASP.NET Atlas簡單控制項介紹——Label,HyperLink,Select和Image
這篇是其中的第二篇:ASP.NET Atlas簡單控制項介紹——InputControl,TextBox,Button和CheckBox
Atlas
中的用戶端控制項均繼承或間接繼承於Sys.UI.Control基類(請參考:ASP.NET Atlas簡單控制項介紹——Sys.Component基類與Sys.UI.Control基類),並有所擴充,本文將介紹Atlas內建的簡單控制項InputControl,TextBox,Button和CheckBox。
Sys.UI.InputControl
InputControl類是一個抽象類別,作為所有提供使用者輸入的控制項(例如TextBox,見下文)的基類,提供了輸入資料驗證等公有操作。InputControl抽象類別提供如下屬性:
- isValid:該屬性為唯讀,返回布爾值,代表輸入資料經過驗證後是否合法,即是否通過了所有Validator(請參考:在ASP.NET Atlas中建立自訂的Validator)的驗證。
- validationMessage:該屬性為唯讀,返回String。當驗證失敗時,它包含第一個引發失敗的Validator的錯誤資訊;若驗證成功,則為空白字串。
- validators:返回該InputControl的Validator集合,您可以通過這個屬性添加/刪除某個Validator來實現對使用者輸入資訊的驗證。
Sys.UI.TextBox
TextBox控制項是任何一種GUI都必須提供的控制項之一,也是我們最常用的和使用者互動的控制項之一。Atlas中的TextBox封裝了type為input的DOM元素input,或是DOM元素textarea,繼承於InputControl基類以獲得輸入資料驗證的功能。TextBox提供如下屬性。
- text:擷取或設定TextBox中的文字。
正因為TextBox在實際程式設計中非常常用,所以我們也經常需要對它的擴充。關於對TextBox空間的擴充,有興趣的朋友請參考:
- 使用ASP.NET Atlas開發In Place Editing輸入控制項
- 使用ASP.NET Atlas開發隨輸入內容自動調整行數的textarea
Sys.UI.Button
Button控制項在GUI中同樣重要。Atlas將DOM元素中的Button概念擴充,使Button不單單指type為button或submit的HTML input元素,還可以應用到例如span,a等元素上,提供開發人員統一的編程介面。Button提供如下兩個屬性:
- command:擷取或設定代表該Button引發的命令名稱的String。當該Button的父控制項允許event bubbling時,父控制項的onBubbleEvent事件處理函數中可以訪問到該屬性以得到該Button傳遞過來的命令名稱。
- argument:擷取或設定代表該Button引發的命令參數的String。該Button的父控制項允許event bubbling時,父控制項的onBubbleEvent事件處理函數中可以訪問到該屬性以得到該Button傳遞過來的參數。
以上兩個屬性在某些情況中非常有用,您可以在這篇文章:使用 ASP.NET Atlas PageNavigator控制項實現用戶端分頁導航中看到它們的實際應用。
Button還提供如下的事件:
- click:在該Button被點擊時觸發。
注意:當某個Button被點擊時,首先觸發的是該Button的click事件,然後再觸發該Button父控制項的onBubbleEvent事件。
Sys.UI.CheckBox
Atlas中的CheckBox封裝了type為checkbox的input DOM元素。使用者可以使用它輸入一個布爾值。CheckBox提供如下屬性:
- checked:擷取或設定代表該CheckBox是否被選中的布爾值。
CheckBox還提供如下事件:
- click:在該CheckBox被點擊時觸發。
本文中提到的控制項均非常簡單,故略去樣本程式,歡迎大家留下看法或提出您的問題。在接下來的一篇文章中,我將介紹Select,HyperLink,Label和Image控制項。