CSS 控制項適配器工具包新版發布

來源:互聯網
上載者:User
 【原文地址】CSS Control Adapter Toolkit Update
【原文發表日期】Friday, September 08, 2006 6:53 PM

今天,我們發布了ASP.NET 2.0的CSS控制項適配器的更新版本,內中包含了bug fixes,使用者建議的的功能,以及對新控制項的支援。你可以免費下載,馬上開始使用它們,來給予下列ASP.NET控制項用純粹的CSS最佳化過的標識(markup)::

  • Menu
  • TreeView
  • GridView (新)
  • DetailsView
  • FormsView
  • DataList
  • Login (新)
  • ChangePassword (新)
  • CreateUser (新)
  • PasswordRecovery (新)
  • LoginStatus (新)

在CSS控制項適配器第一次發行時,我曾寫文章說明過,這些控制項適配器使用了ASP.NET 2.0中一個新的內建的擴充機制,叫做“控制項適配器(control adapters)”。控制項適配器允許你將其接入(plug-in)任何ASP.NET 伺服器控制項,然後它就會覆蓋,修改或細調( tweak)那個控制項的顯示輸出邏輯。

控制項適配器很酷的地方是,它們不要求頁面開發人員對一個新的控制項編程,或修改控制項編程模型的semantics,即,跟以前一樣,你仍舊使用同樣的控制項屬性,方法,事件和模板。建造頁面的開發人員可以完全忘卻使用了控制項適配器,控制項適配器模型使得註冊和封裝這樣的支援非常乾淨。

快速入門示範

在免費的Visual Web Developer或Visual Studio 2005中使用CSS控制項適配器工具包,按下列步驟做:

第一步:安裝CSS控制項適配器工具包:  

下載和安裝CSS 控制項適配器工具包到你的機器上。點擊這裡下載一個Visual Studio的.VSI 模板項目,它會產生一個配置了CSS控制項適配器的可以啟動並執行項目模板。這是個安全的下載,它不會修改VS或ASP.NET中的任何檔案或設定,所以你不要擔心它是否會對現有編碼造成問題。

第二步:建立一個註冊了CSS控制項適配器的新網站:

在Visual Web Developer或VS 2005中,在菜單裡選擇檔案->新網站。這會開啟“新網站”對話方塊。選擇你的程式設計語言,然後選擇新安裝的“CSS友好網站(CSS Friendly Web Site)”項目模板:

這會為你建立一個新的網站項目,它的app_code目錄裡已經包含了CSS控制項適配器的源碼。它也包含了一些預設的CSS樣式檔案,其中有為你預先定義好了的樣式類的名稱(class name),你可以用它們來定製你需要的任何CSS標識(CSS markup):

第三步:試一些CSS樣式控制項例子: 

要看控制項適配器是如何改變伺服器控制項的標識的話,研究一下預設添加到新項目中的walkthrough子目錄

例如,在中,SimpleMenu.aspx網頁靜態地定義了一個菜單控制項,該控制項連到了一個OnClick事件處理方法(或者,你也可以使用導航直接轉到一個特定的網頁去):

<asp:Menu ID="EntertainmentMenu" runat="server" Orientation="Horizontal" onmenuitemclick="Menu_OnClick" CssSelectorClass="SimpleEntertainmentMenu">
    <Items>
        <asp:MenuItem Text="Music">
            <asp:MenuItem Text="Classical" />
            <asp:MenuItem Text="Rock">
                <asp:MenuItem Text="Electric" />
                <asp:MenuItem Text="Acoustical" />
            </asp:MenuItem>
            <asp:MenuItem Text="Jazz" />
        </asp:MenuItem>
        <asp:MenuItem Text="Movies" Selectable="false">
            <asp:MenuItem Text="Action" />
            <asp:MenuItem Text="Drama" />
            <asp:MenuItem Text="Musical" />
        </asp:MenuItem>
    </Items>
</asp:Menu>

在code-behind裡,Menu_OnClick事件的編碼是象這樣的:

    Public Sub Menu_OnClick(ByVal sender As Object, ByVal e As MenuEventArgs)
        MessageLabel.Text = "You selected " & e.Item.Text & "."
        e.Item.Selected = True
    End Sub

在運行時,CSS控制項適配器會導致菜單輸出使用了<li>和<ul>元素的CSS樣式化了的的標識,而不是表格,當我們應用一個CSS樣式表到頁面時,我們將得到一個好看的分層的下拉式菜單:

在看這些樣本例子時,你也許要看一下CheckBoxTreeView 這個例子。它示範了如何用CSS來樣式化<asp:treeview>控制項以使用行內( inline)的複選框:

 

那麼CSS控制項適配器是如何工作的呢?

控制項適配器是些繼承了System.Web.UI.Adapters.ControlAdapter基類的類,實現了繪製/渲染(rendering)方法,這些方法允許控制項適配器完全定製一個單獨的控制項顯示的標識。當你使用CSS友好網站項目模板建立一個新的網站項目時,11個預建的與CSS友好的控制項適配器的源碼就被自動地加到你的app_code目錄中了:

你可以原本不動地使用這些控制項適配器類,不需要改變編碼,就能得到與CSS友好的輸出,或者你可以對它們進行細調,假如你需要對顯示輸出做任意定製的話。

控制項適配器是通過在當前項目的應用程式根目錄的直接子目錄,/App_Browsers裡,添加一個.browser檔案,來與 ASP.NET註冊的。.browser 檔案裡包含了如下所示的簡單的標識,允許你指定哪個控制項適配器應該用在哪個控制項上:

<browsers>
  <browser refID="Default">
    <controlAdapters>
      <adapter controlType="System.Web.UI.WebControls.Menu" adapterType="CSSFriendly.MenuAdapter" />
      <adapter controlType="System.Web.UI.WebControls.TreeView" adapterType="CSSFriendly.TreeViewAdapter" />
      <adapter controlType="System.Web.UI.WebControls.DetailsView" adapterType="CSSFriendly.DetailsViewAdapter" />
      <adapter controlType="System.Web.UI.WebControls.FormView" adapterType="CSSFriendly.FormViewAdapter" />
      <adapter controlType="System.Web.UI.WebControls.DataList" adapterType="CSSFriendly.DataListAdapter" />
      <adapter controlType="System.Web.UI.WebControls.GridView" adapterType="CSSFriendly.GridViewAdapter" />
      <adapter controlType="System.Web.UI.WebControls.ChangePassword" adapterType="CSSFriendly.ChangePasswordAdapter" />
      <adapter controlType="System.Web.UI.WebControls.Login" adapterType="CSSFriendly.LoginAdapter" />
      <adapter controlType="System.Web.UI.WebControls.LoginStatus" adapterType="CSSFriendly.LoginStatusAdapter" />
      <adapter controlType="System.Web.UI.WebControls.CreateUserWizard" adapterType="CSSFriendly.CreateUserWizardAdapter" />
      <adapter controlType="System.Web.UI.WebControls.PasswordRecovery" adapterType="CSSFriendly.PasswordRecoveryAdapter" />
    </controlAdapters>
  </browser>
</browsers>

如果需要,你可以針對不同的瀏覽器定製不同的控制項適配器,或者定義這些控制項適配器為“預設(Default)”,這樣就會對訪問你的應用的所有的瀏覽器都預設應用這些適配器。

做完這些配置後,就算搞定了,之後,你就可以使用標準的CSS樣式表來定製所有的樣式資訊了。

如有疑問或要彙報任何bug或問題的話,請訪問http://forums.asp.net網站的CSS Control Adapters 論壇。上面的CSS控制項適配器在VS 2005網站項目模型(Web Site Project Model)和VS 2005 Web應用項目模型(Web Application Project Model)兩者中都可使用。而且,CSS控制項適配器有VB和C#兩個版本你可以用。

在這裡我要提起Russ和Heidi,為他們在建立CSS 控制項適配器和樣本例子方面的出色工作表示特別的感謝!

謝謝,

Scott

標籤:ASP.NET, .NET, Tips and Tricks

(思歸譯)

相關文章

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.