Come posso cambiare lo sfondo di una masterpage da il codice di una pagina di contenuto?
-
08-06-2019 - |
Domanda
In particolare mi vuole aggiungere lo stile di background-color
per il <body>
tag di una pagina master, da il codice (C#) di una pagina di contenuto che utilizza la pagina master.
Ho diverse pagine di contenuto che è necessario per rendere la pagina master ha colori diversi a seconda del contenuto che viene caricata la pagina, in modo che la pagina master corrisponde al contenuto della pagina a tema.
Ho una soluzione di seguito:
Sto cercando qualcosa di più simile a:
Master.Attributes.Add("style", "background-color: 2e6095");
All'interno della pagina funzione di caricamento della pagina di contenuto.Ma non riesco a al di sopra della linea di lavoro.Ho solo bisogno di cambiare il background-color
per il <body>
tag della pagina.
Soluzione
Cosa potrei fare per il caso particolare è:
io.Definire il corpo come un server di controllo laterale
<body runat="server" id="masterpageBody">
ii.Nel contenuto della pagina aspx, registrare la MasterPage con il registro:
<% MasterPageFile="..." %>
iii.Nel Contenuto della Pagina, è ora possibile utilizzare semplicemente
Master.FindControl("masterpageBody")
e avere accesso al controllo.Ora, è possibile modificare tutte le proprietà di stile che ti piace!
Altri suggerimenti
Questo è quello che ho pensato è:
Nella pagina In funzione del carico:
HtmlGenericControl body = (HtmlGenericControl)Master.FindControl("default_body");
body.Style.Add(HtmlTextWriterStyle.BackgroundColor, "#2E6095");
Dove
default_body = l'id del tag body.
Credo che si sta parlando di un sistema di gestione dei contenuti.Il modo in cui ho delt con questa situazione, in passato, è quello di:
- Consentire una pagina/contenuto per definire un extra di foglio di stile personalizzato o
- Consentire una pagina/contenuto per definire stile inline tag