2011-01-06 3 views
4

Я загрузки CSS в моей главной странице ...Загрузка CSS динамически в ASP.NET

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

Теперь я хочу, чтобы загрузить это динамически в соответствии с ключом web.config. Есть ли лучший/стандартный способ сделать это, или моя идея стандартная?

Благодаря

ответ

6

Вариант 1:

Вы можете добавить RUNAT = «сервер» атрибут в вашей ссылке CSS и установить 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

+0

Да, в событии page_load. –

0

Вариант 3:

В вашей голове тега вы можете сделать таблицу стилей динамический, сохраняя путь таблицы стилей в переменной сеанса:

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

Option 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:

Поместите свой CSS в новом App_Themes вложенной, и использовать эту тему web.config, чтобы установить имя темы. Затем загрузите тему из кода главной страницы. Будьте осторожны; темы загружают файлы CSS в алфавитном порядке.

Смежные вопросы