2008-08-05 14 views
16

Quiero agregar específicamente el estilo de background-color a la etiqueta <body> de una página maestra, desde el código detrás (C#) de una página de contenido que usa esa página maestra.¿Cómo puedo cambiar el fondo de una página maestra desde el código detrás de una página de contenido?

Tengo diferentes páginas de contenido que necesitan para hacer que la página maestra tenga diferentes colores dependiendo de qué página de contenido está cargada, de modo que la página maestra coincida con el tema de la página de contenido.

tengo una solución a continuación:


estoy buscando algo más como:

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

Dentro de la función de carga de la página de la página de contenido. Pero no puedo hacer que la línea anterior funcione. Solo necesito cambiar el background-color por la etiqueta <body> de la página.

+0

Aquí es una solución mejor http://stackoverflow.com/questions/21476068/asp-net-changing-master-page-section-css-from-content-page –

Respuesta

8

Lo que haría por el caso particular es:

i. Defina el cuerpo como un control del lado del servidor

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

ii. En su página aspx de contenido, registre la página maestra con el registro:

<% MasterPageFile="..." %> 

iii. En la página de contenido, ahora puede simplemente usar

Master.FindControl("masterpageBody") 

y tener acceso al control. ¡Ahora puede cambiar cualquier propiedad/estilo que quiera!

+0

¿le importaría aclarar Master.FindControl ("masterpageBody") y agrega un ejemplo para agregar la clase css, por favor. –

0

Creo que está hablando de un sistema de gestión de contenido. La forma en que he delt con esta situación en el pasado es que ya sea:

  1. Permitir una página/contenido para definir una hoja de estilo personalizada adicional o
  2. Permitir una página/contenido para definir las etiquetas de estilo en línea
1

Esto es lo que ocurrió:

En la función de carga de la página:

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

Dónde

default_body = el id de la etiqueta del cuerpo.

Cuestiones relacionadas