¿Cómo puedo cambiar el fondo de una página maestra a partir del código subyacente de una página de contenido?

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

  •  08-06-2019
  •  | 
  •  

Pregunta

Específicamente quiero agregar el estilo de background-color hacia <body> etiqueta de una página maestra, del código subyacente (C#) de una página de contenido que usa esa página maestra.

Tengo diferentes páginas de contenido que necesitan 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 página de la página de contenido.Pero no consigo que funcione la línea anterior.solo necesito cambiar el background-color Para el <body> etiqueta de la página.

¿Fue útil?

Solución

Lo que haría para el caso particular es:

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

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

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

<% MasterPageFile="..." %>

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

Master.FindControl("masterpageBody")

y tener acceso al control.¡Ahora puedes cambiar las propiedades/estilo que quieras!

Otros consejos

Esto es lo que se me ocurrió:

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

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

Dónde

default_body = la identificación de la etiqueta del cuerpo.

Creo que estás hablando de un sistema de gestión de contenidos.La forma en que he solucionado esta situación en el pasado es:

  1. Permitir que una página/contenido defina una hoja de estilo personalizada adicional o
  2. Permitir que una página/contenido defina etiquetas de estilo en línea
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top