Como posso alterar o plano de fundo de uma masterpage do código por trás de uma página de conteúdo?

StackOverflow https://stackoverflow.com/questions/2209

  •  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.

Foi útil?

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:

  1. Permitir que uma página/conteúdo para definir um extra personalizado de folha de estilos ou
  2. Permitir que uma página/conteúdo para definir o estilo inline tags
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top