程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> Asp.Net下通過切換CSS換皮膚

Asp.Net下通過切換CSS換皮膚

編輯:.NET實例教程

換皮膚的方式有很多種,最簡單的通常就是切換頁面CSS,而CSS通常寫在外部CSS文件裡。那麼切換CSS其實就是更換Html裡的link href路徑。我在網上搜索了下。一般有兩種方式:

1,在頁面放一個holder控件。然後用編程方式把當前用戶的風格CSS link寫入頁面。
2,通過反射機制,逐個控件設置CSS樣式。
上面兩種方式都挺麻煩的,
第一種需要在每個頁面上放一個holder控件。類似的做法還有把link標簽加runat=server的做法。頁面多了,都比較麻煩。
第二種不用考慮了。性能編程效率上問題多多。

記得以前在學習DNN的時候,在他裡面發現了一種修改form裡默認的action地址的方式,直接參考下。還不錯:
直接重寫Render事件
        protected override void Render(System.Web.UI.HtmlTextWriter writer)
        {
            StringWriter sw = new StringWriter() ;
            HtmlTextWriter htmlWriter = new HtmlTextWriter(sw) ;

            base.Render(HtmlWriter) ;
            //當前用戶選擇的風格CSS
            string css = "<link href=\"css url\" rel=\"stylesheet\" type=\"text/CSS\">" ;

            string Html = sw.ToString() ;
            int startPoint = Html.IndexOf("</head>", StringComparison.CurrentCultureIgnoreCase);
            if (startPoint > 0)
            {
                html = Html.Insert(startPoint, CSS);
            }

            writer.Write(Html) ;
        }
把這個放在每個頁面的基類PageBase裡。那就方便多了。
當然,如果不想在讓每個page都繼承自定義的基類的方式,那也可以通過在HttpModule裡寫。也很方便.
一處寫好,頁頁受用呀。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved