Asp.Net下通過切換CSS換皮膚
來源:易賢網(wǎng) 閱讀:1248 次 日期:2015-02-27 11:12:48
溫馨提示:易賢網(wǎng)小編為您整理了“Asp.Net下通過切換CSS換皮膚”,方便廣大網(wǎng)友查閱!

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

1,在頁面放一個holder控件。然后用編程方式把當前用戶的風格css link寫入頁面。

2,通過反射機制,逐個控件設置css樣式。

上面兩種方式都挺麻煩的,

第一種需要在每個頁面上放一個holder控件。類似的做法還有把link標簽加runat=server的做法。頁面多了,都比較麻煩。

第二種不用考慮了。性能編程效率上問題多多。

記得以前在學習DNN的時候,在他里面發(fā)現(xiàn)了一種修改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里寫。也很方便.

一處寫好,頁頁受用呀。

更多信息請查看IT技術專欄

更多信息請查看網(wǎng)絡編程
易賢網(wǎng)手機網(wǎng)站地址:Asp.Net下通過切換CSS換皮膚
關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點

版權所有:易賢網(wǎng)