Изменение таблицы стилей в коде на главной странице - PullRequest
3 голосов
/ 08 августа 2009

На главной странице я устанавливаю таблицу стилей, которая определяет макет.

 <link id="layoutStylesheet" href="CSS/Layout3Col.css" rel="stylesheet" type="text/css" runat="server" />

У меня есть страница ShowDoc.aspx, которая наследует главную страницу.
Я хочу загрузить другой файл CSS, когда определенный параметр передается в ShowDoc.aspx в строке запроса.

Как я могу это сделать?
Должен ли я определить открытое свойство на главной странице, чтобы showDoc.aspx мог получить к нему доступ и изменить layoutStylesheet?

Ответы [ 3 ]

9 голосов
/ 08 августа 2009

Вы можете найти ссылку на таблицу стилей с помощью свойства Master на странице ShowDoc в Page_Load и переопределить там свойство Href.

HtmlLink link = Page.Master.FindControl( "layoutStyleSheet" ) as HtmlLink;
link.Href = ...your chosen stylesheet...
0 голосов
/ 08 августа 2009

В зависимости от того, сколько страниц у вас есть, которые захотят изменить это, и сколько еще изменений будет изменено одновременно, вы можете рассмотреть вопрос о вложенных главных страницах.

Корневая главная страница может определять doctype / html / head / body и все общие ресурсы; Ваши "дочерние" главные страницы могут использовать это как свою собственную главную страницу. Страницы будут использовать только дочерние главные страницы.

Обратите внимание, что вы можете использовать элементы управления ContentPlaceHolder вне формы, поэтому вы можете поместить их в элемент HEAD.

0 голосов
/ 08 августа 2009

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

switch (Request["whateverstyle"]) {
    case "style1" : layoutStylesheet.Attributes["href"] = "style1.css";
    case "style2" : layoutStylesheet.Attributes["href"] = "style2.css";
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...