ASP.NET Atlas簡單控制項介紹——Sys.Component基類與Sys.UI.Control基類

來源:互聯網
上載者:User

作者:Dflying Chen (http://dflying.cnblogs.com/)

本系列有三篇文章:

  1. ASP.NET Atlas簡單控制項介紹——Sys.Component基類與Sys.UI.Control基類
  2. ASP.NET Atlas簡單控制項介紹——InputControl,TextBox,Button和CheckBox
  3. ASP.NET Atlas簡單控制項介紹——Label,HyperLink,Select和Image

這篇是其中的第一篇:ASP.NET Atlas簡單控制項介紹——Sys.Component基類與Sys.UI.Control基類

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提供的屬性:

  1. id:Atlas組件的標識符,將Atlas用戶端組件與DOM元素串連起來。這個id值與DOM元素的id屬性值相同,Atlas使用這個id以找到相關的DOM元素。
  2. bindings:該組件的綁定集合。關於Atlas中的綁定,請參考:Atlas揭秘 —— 綁定(Binding)。
  3. dataContext:該組件的綁定的操作對象。如果您設定了這個屬性,那麼所有綁定條目預設會繼承這個對象,但您也可以在綁定的聲明中覆蓋這個預設的設定。
  4. isInitialized:布爾值,代表該組件是否被初始化過。唯讀。
  5. isUpdating:該組件是否正在更新中,在開始調用beginUpdate()方法到調用endUpdate()方法期間為true,其他時間為false。唯讀。

Sys.Component還提供如下的方法:

  1. beginUpdateendUpdate:依賴於基類的實現,可以通過調用這兩個方法延遲或一起更新一批組件,以提高效能或減少螢幕閃爍。
  2. initialize:建構函式,不必多言,繼承類可以擴充該方法並初始化自己的成員。

還有如下事件:

  1. propertyChanged:當組件的某個屬性變化時,應該引發該事件。Atlas綁定的實現依賴於這個事件。

現在讓我們看看Sys.UI.Control提供的屬性:

  1. accessKey:擷取或設定控制項的accessKey,該屬性是DOM元素中的accessKey屬性的封裝。
  2. associatedElement:返回控制項的相關DOM元素。這個屬性應該傳入給控制項的建構函式,並在構造以後不可以修改。
  3. behaviors:該組件的Behavior集合。關於Atlas中的Behavior,請參考:在ASP.NET Atlas中建立自訂的Behavior。
  4. cssClass:擷取或設定控制項的CSS Class,該屬性是DOM元素中的class屬性的封裝。
  5. enabled:代表該控制項是否被啟用,該屬性是DOM元素中的enabled屬性的封裝。
  6. parent:擷取或設定該控制項的父控制項。
  7. style:擷取該控制項相對應的DOM元素的style屬性值。
  8. tabIndex:擷取或設定該控制項的tab index。
  9. visibilityMode:擷取或設定該控制項在隱藏時的顯示模式,可選枚舉值:Sys.UI.VisibilityMode.Collapse代表該控制項隱藏時不佔用頁面空間,Sys.UI.VisibilityMode.Hidden代表該控制項隱藏時依然佔有其位置。
  10. visible:擷取或設定該控制項是否可見。

Sys.UI.Control同樣提供如下方法:

  1. addCssClass:為該控制項添加一個CSS Class。
  2. removeCssClass:刪除該控制項的一個CSS Class。
  3. containsCssClass:返回布爾值,代表該控制項是否有指定的CSS Class。
  4. toggleCssClass:如果該控制項沒有指定的CSS Class,則添加,如果有,則刪除。
  5. focus:使該控制項獲得輸入焦點。
  6. scrollIntoView:使該控制項滾動到螢幕可視範圍內。
  7. onBubbleEvent:處理該控制項的子控制項發出的Bubble事件。您可以在這篇文章:使用 ASP.NET Atlas PageNavigator控制項實現用戶端分頁導航中找到該方法的實際應用。
  8. raiseBubbleEvent:該方法會調用該控制項所有父控制項的onBubbleEvent方法,來實現Bubble事件。您可以在這篇文章:使用 ASP.NET Atlas PageNavigator控制項實現用戶端分頁導航中找到該方法的實際應用。

在接下來的幾篇中,我會介紹繼承或間接繼承於Sys.UI.Control的Atlas內建控制項,希望不會像這篇一樣枯燥。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.