Как я могу изменить фон главной страницы из кода страницы с контентом?

Я специально хочу добавить стиль background-color к <body> тегу мастер - страницы, из кода позади (C#) страницы контента, использующих страницы.

У меня есть разные страницы содержимого, на которых главная страница должна иметь разные цвета в зависимости от того, какая страница содержимого загружена, чтобы главная страница соответствовала теме страницы содержимого.

У меня есть решение ниже:


Я ищу что-то более похожее:

Master.Attributes.Add("style", "background-color: 2e6095");

Внутри функции загрузки страницы содержимого страницы. Но я не могу заставить вышеуказанную строку работать. Мне нужно только изменить background-color для <body> тега страницы.

Ответов (3)

Решение

Что бы я сделал для конкретного случая:

я. Определите тело как элемент управления на стороне сервера

<body runat="server" id="masterpageBody">

II. На странице aspx с контентом зарегистрируйте MasterPage в реестре:

<% MasterPageFile="..." %>

iii. На странице содержимого теперь вы можете просто использовать

Master.FindControl("masterpageBody")

и иметь доступ к управлению. Теперь вы можете изменить любые свойства / стиль, которые вам нравятся!

Я полагаю, вы говорите о системе управления контентом. В прошлом я разбирался с этой ситуацией:

  1. Разрешить странице / контенту определять дополнительную настраиваемую таблицу стилей или
  2. Разрешить странице / контенту определять встроенные теги стиля

Вот что я придумал:

В функции загрузки страницы:

HtmlGenericControl body = (HtmlGenericControl)Master.FindControl("default_body");
body.Style.Add(HtmlTextWriterStyle.BackgroundColor, "#2E6095");

Где

default_body = идентификатор тега тела.