2011-01-06 69 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文件。