2008-08-05 9 views
16

In particolare voglio aggiungere lo stile di background-color al tag <body> di una pagina master, dal codice sottostante (C#) di una pagina di contenuto che utilizza quella pagina principale.Come posso cambiare lo sfondo di una pagina master dal codice sottostante di una pagina di contenuto?

Sono diverse pagine di contenuto che devono rendere la pagina master con colori diversi a seconda della pagina di contenuto caricata, in modo che la pagina principale corrisponda al tema della pagina di contenuto.

ho una soluzione qui di seguito:


sto cercando qualcosa di più simile a:

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

All'interno della funzione di caricamento della pagina della pagina di contenuti. Ma non riesco a far funzionare la linea sopra. Ho solo bisogno di cambiare il background-color per il tag <body> della pagina.

+0

Ecco una soluzione migliore http://stackoverflow.com/questions/21476068/asp-net-changing-master-page-section-css-from-content-page –

risposta

8

Quello che vorrei fare per il caso particolare è:

i. Definire il corpo come controllo lato server

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

ii. Nella pagina aspx del contenuto, registrare la MasterPage con il registro:

<% MasterPageFile="..." %> 

iii. Nella pagina Contenuto, ora puoi semplicemente utilizzare

Master.FindControl("masterpageBody") 

e avere accesso al controllo. Ora puoi cambiare qualsiasi proprietà/stile che ti piace!

+0

ti dispiacerebbe chiarire Master.FindControl ("masterpageBody") e aggiungi qualche esempio per aggiungere la classe css, per favore. –

0

Credo che tu stia parlando di un sistema di gestione dei contenuti. Il modo in cui ho delt con questa situazione in passato è a uno:

  1. consentire a una pagina/contenuti per definire un foglio di stile personalizzato in più o
  2. Consentire una pagina/contenuti per definire tag di stile in linea
1

Questo è ciò che mi si avvicinò con:

Nella funzione di caricamento della pagina:

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

Dove

default_body = l'id del tag body.

Problemi correlati