2011-01-06 57 views
4

我加載CSS在我的母版頁...加載CSS動態的ASP.NET

<link rel="stylesheet" href="css/mystyles.css" title="styles" type="text/css" /> 

現在我要動態地根據一個web.config鍵裝載這個。有沒有更好的/標準的做法,或者我的想法是標準方法?

感謝

回答

6

選項1:

您可以從代碼添加在你的CSS鏈接RUNAT =「server」屬性和設置href的值隱藏文件,在那裏你可以動態設置它。

選項2:

HtmlLink link = new HtmlLink(); 
link.Attributes["href"] = filename; 
link.Attributes["type"] = "text/css"; 
link.Attributes["rel"] = "stylesheet"; 
Page.Header.Controls.Add(link); 
+0

我在哪裏寫選項1?它似乎佈局錯位...在page_load? – grady 2011-01-06 14:56:09

+0

是的,在page_load事件中。 – 2011-01-06 15:40:15

0

方案3:

在你的頭標記,你可以通過存儲在會話變量樣式路徑使樣式表動態:

<link rel="stylesheet" type="text/css" href="<%=Session("PathToStyleSheet") %>" /> 
2

選項4:添加整個鏈路對頭代碼

void AddStylesheet(string ssRef) { 
    HtmlHead head = Page.Header; 

    Literal l = new Literal(); 
    l.Text = "<link href=\""+ssRef + "\" type=\"text/css\" rel=\"stylesheet\" />"; 
    head.Controls.Add(l); 
} 

...這基本上是相似的選項2

0

方案5:

放入一個新的子文件夾App_Themes文件你的CSS,並使用web.config文件的主題設定主題名稱。然後從您的母版頁的代碼後面加載主題。要小心;主題按字母順序加載CSS文件。