ASP.NET Atlas簡單控制項介紹之兩個基類
最後更新:2017-02-28
來源:互聯網
上載者:User
asp.net|控制項 ASP.NET Atlas中引入了用戶端控制項的概念,用物件導向思想將用戶端JavaScript將要操作的DOM元素封裝起來,帶來了更清晰的代碼模型以及更好的可複用性(不足之處是效率有所降低)。Atlas的用戶端控制項是串連JavaScript與DOM元素的橋樑,我們應該儘可能的使用用戶端控制項與DOM元素打交道,也就是以Atlas的方法來編寫我們的程式。同時,Atlas對JavaScript物件導向方面的強大擴充(請參考:ASP.NET Atlas對JavaScript的擴充),也讓我們很容易通過繼承,覆寫等方法來構建自訂的控制項。
在前面的一些文章中,我介紹了一些Atlas中較複雜的控制項。但同時,Atlas也提供了一些比較簡單/基礎的用戶端控制項,同樣在開發中十分有用,讓我們通過這個系列來熟悉Atlas內建的簡易用戶端控制項。
所有的Atlas用戶端控制項都繼承於Sys.UI.Control基類,同時Sys.UI.Control繼承於Sys.Component基類,讓我們先看看Sys.Component提供的屬性:
·id:Atlas組件的標識符,將Atlas用戶端組件與DOM元素串連起來。這個id值與DOM元素的id屬性值相同,Atlas使用這個id以找到相關的DOM元素。
·bindings:該組件的綁定集合。關於Atlas中的綁定,請參考:Atlas揭秘 —— 綁定(Binding)。
·dataContext:該組件的綁定的操作對象。如果您設定了這個屬性,那麼所有綁定條目預設會繼承這個對象,但您也可以在綁定的聲明中覆蓋這個預設的設定。
·isInitialized:布爾值,代表該組件是否被初始化過。唯讀。
·isUpdating:該組件是否正在更新中,在開始調用beginUpdate()方法到調用endUpdate()方法期間為true,其他時間為false。唯讀。
Sys.Component還提供如下的方法:
·beginUpdate與endUpdate:依賴於基類的實現,可以通過調用這兩個方法延遲或一起更新一批組件,以提高效能或減少螢幕閃爍。
·initialize:建構函式,不必多言,繼承類可以擴充該方法並初始化自己的成員。
還有如下事件: propertyChanged:當組件的某個屬性變化時,應該引發該事件。Atlas綁定的實現依賴於這個事件。
現在讓我們看看Sys.UI.Control提供的屬性:
·accessKey:擷取或設定控制項的accessKey,該屬性是DOM元素中的accessKey屬性的封裝。
·associatedElement:返回控制項的相關DOM元素。這個屬性應該傳入給控制項的建構函式,並在構造以後不可以修改。
·behaviors:該組件的Behavior集合。關於Atlas中的Behavior,請參考:在ASP.NET Atlas中建立自訂的Behavior。
·cssClass:擷取或設定控制項的CSS Class,該屬性是DOM元素中的class屬性的封裝。
·enabled:代表該控制項是否被啟用,該屬性是DOM元素中的enabled屬性的封裝。
·parent:擷取或設定該控制項的父控制項。
·style:擷取該控制項相對應的DOM元素的style屬性值。
·tabIndex:擷取或設定該控制項的tab index。
·visibilityMode:擷取或設定該控制項在隱藏時的顯示模式,可選枚舉值:Sys.UI.VisibilityMode.Collapse代表該控制項隱藏時不佔用頁面空間,Sys.UI.VisibilityMode.Hidden代表該控制項隱藏時依然佔有其位置。
·visible:擷取或設定該控制項是否可見。
Sys.UI.Control同樣提供如下方法:
·addCssClass:為該控制項添加一個CSS Class。
·removeCssClass:刪除該控制項的一個CSS Class。
·containsCssClass:返回布爾值,代表該控制項是否有指定的CSS Class。
·toggleCssClass:如果該控制項沒有指定的CSS Class,則添加,如果有,則刪除。
·focus:使該控制項獲得輸入焦點。
·scrollIntoView:使該控制項滾動到螢幕可視範圍內。
·onBubbleEvent:處理該控制項的子控制項發出的Bubble事件。
·raiseBubbleEvent:該方法會調用該控制項所有父控制項的onBubbleEvent方法,來實現Bubble事件。
在接下來的幾篇中,我會介紹繼承或間接繼承於Sys.UI.Control的Atlas內建控制項,希望不會像這篇一樣枯燥。