asp.net2.0揭祕讀書筆記三:使用主題設計網站

iDotNetSpace發表於2009-05-12

一、建立主題

在名為App_Themes的應用程式的資料夾中新增資料夾就可以建立主題。在App_Themes中新增的每一個資料夾都代表一個主題。

在主題資料夾中比較重要的檔案型別有皮膚檔案和CSS檔案。

 

二、在主題中新增皮膚

一個主題可能包含一個或多個皮膚檔案。可以通過皮膚來修改所有具有皮膚效果的ASP.NET控制元件屬性。

例如,將Web應用程式中所有的TextBox控制元件的背景顏色設為黃色並選擇dotted作為它的邊框樣式。在App_Themes資料夾下建立Simple資料夾,然後在Simple資料夾中建立TextBox.skin檔案,該檔案程式碼如下所示:

注意上面程式碼裡面runat是必須的,而且不能帶ID屬性。

主題資料夾下可以擁有一個或上百給皮膚檔案,但在一個主題資料夾下的所有的檔案都會編譯成一個主題類。

 

上面的主題資料夾Simple如果要在某個頁面使用其定義的主題,則使用如下程式碼:

如果該頁面的TextBox控制元件屬性EnableTheming設定為false,則主題不起作用。

 

1、 建立命名皮膚

在定義命名皮膚時比定義預設皮膚增加SkinID屬性,在應用主題頁面指定控制元件的SkinID屬性為命名皮膚定義的SkinID屬性名稱即可。

2、 ThemesStyleSheetThems

使用Themes指定應用某個主題時候,主題定義皮膚會覆蓋頁面中控制元件自定義的皮膚。

而使用StyleSheetThems指定則不會覆蓋。

3、 禁用皮膚

每個控制元件都包含有EnableTheming屬性,設定為false則禁用主題皮膚。

4、 Web配置檔案中註冊主題

在啟用程式中的主題後,可以在特定頁面中通過

來禁用主題。

 

三、在主題中新增CSS

除了使用主題皮膚外,也可以使用CSS來控制頁面上HTML元素和ASP.NET控制元件的皮膚。如果在主題資料夾下新增了CSS檔案,則在頁面應用主題時也會自動應用CSS

 

四、建立全域性主題

此種情況本人應用較少,跳過。對於很少用到的知識而且又不是基礎性的,我的學習原則是知道有這個應用即可,待有機會真正用上時再學習也不遲。不然在技術的汪洋大海里面永遠也不知岸在哪裡。

 

五、動態應用皮膚

通過處理頁面的Page_PreInit事件可以在頁面動態應用主題。在請求頁面時,這是第一個被觸發的事件。在其後的Page_LoadPage_PreRender等事件中是不能動態應用主題的。

 

 

    protected void Page_PreInit(object sender, EventArgs e)

    {

        if (Request["theme"] != null)

        {

            switch (Request["theme"])

            {

                case "Green":

                    Profile.userTheme = "GreenTheme";

                    break;

                case "Pink":

                    Profile.userTheme = "PinkTheme";

                    break;   

            }

        }

        Theme = Profile.userTheme;

    }

 

   

Dynamic Theme

   

   

   

   

Dynamic Theme

 

    Please select a Theme:

   

   

   

   

 

通過頁面的Theme屬性,特定主題可以應用到此頁面。通過在PreInit事件中將主題名稱賦給Theme屬性,主題將會應用到此頁面。

當把資訊儲存到Profile物件中時,在瀏覽多個站點時這個資訊仍然會保留。所以如果使用者選擇了一次自己喜歡的主題,那麼當使用者在以後再次返回到此站點時仍然會應用此主題。

Web.Config檔案中定義Profile

 

    <!--

   

    --&gt

 

   

     

       

     

   

   

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-594854/,如需轉載,請註明出處,否則將追究法律責任。

相關文章