Como posso alterar o plano de fundo de uma masterpage do código por trás de uma página de conteúdo?
-
08-06-2019 - |
Pergunta
Eu especificamente deseja adicionar o estilo de background-color
para o <body>
marca de uma página mestra, desde o código (C#) de uma página de conteúdo que usa essa página mestra.
Tenho diferentes páginas de conteúdo que precisa para fazer a página principal tem cores diferentes, dependendo do conteúdo da página é carregada, para que o mestre da página coincide com o conteúdo da página do tema.
Eu tenho uma solução abaixo:
Eu estou procurando algo mais, como:
Master.Attributes.Add("style", "background-color: 2e6095");
Dentro da página de carga em função do conteúdo da página.Mas eu não posso chegar a linha acima para o trabalho.Eu só preciso de alterar a background-color
para o <body>
tag da página.
Solução
O que eu faria para o caso particular é:
eu.Definir o corpo como um servidor de controle lateral
<body runat="server" id="masterpageBody">
ii.Em seu conteúdo página aspx, registrar o MasterPage com o registo:
<% MasterPageFile="..." %>
iii.No Conteúdo da Página, agora você pode simplesmente usar
Master.FindControl("masterpageBody")
e ter acesso à caixa de controle.Agora, você pode alterar as propriedades/estilo que você gosta!
Outras dicas
É isso que eu vim acima com:
Na página função de carga:
HtmlGenericControl body = (HtmlGenericControl)Master.FindControl("default_body");
body.Style.Add(HtmlTextWriterStyle.BackgroundColor, "#2E6095");
Onde
default_body = o id da tag body.
Eu acredito que você está falando de um sistema de gerenciamento de conteúdo.A maneira de eu ter delt com esta situação no passado, está-se a:
- Permitir que uma página/conteúdo para definir um extra personalizado de folha de estilos ou
- Permitir que uma página/conteúdo para definir o estilo inline tags