126 messaggi dal 14 aprile 2006
avendo un struttura, masterpage -> e molte pagine di contenuto è possiile associare un file css differente per ogni pagina di contenuto ?
492 messaggi dal 08 gennaio 2007
"schoolfighter" <schoolfighter> ha scritto nel messaggio news:320371@...
avendo un struttura, masterpage -> e molte pagine di contenuto è possiile associare un file css differente per ogni pagina di contenuto ?
Ciao, se hai molte pagine di contenuto e hai la necessità di molti fogli di stile diversi, allora è molto probabile che tu abbia bisogno anche di qualche masterpage annidata dove puoi definire il foglio di stile che desideri.
Quindi farai una master principale, una master-figlia con associato il ccs1, una master-figlia2 con associato il css2, e poi le pagine di contenuto che potranno ereditare dalla master-figlia più adatta, dove potrai anche aggiungere qualche regola di stile qui e là dove serve
schoolfighter ha scritto:
avendo un struttura, masterpage -> e molte pagine di contenuto è possiile associare un file css differente per ogni pagina di contenuto ?


Sì. Io inserisco nel tag <head> della master page un contentplaceholder:

<asp:ContentPlaceHolder id="ExtraPageHead" runat="server" />


e poi nelle singole pagine che usano la master page riempio ExtraPageHead con css custom, javascript, metatags, ecc.

HTH

PS: a Visual Studio non piace il contentplaceholder nell'head ma non è un problema

Matteo Casati
GURU4.net
126 messaggi dal 14 aprile 2006
allora la prima soluzione ci avevo già pensato, ma ciò significherebbe che dovrei creare tante masterpage, con dentro tanti menù tutti uguali.. e questo nn va bene.
allora cosa le uso a fare le master page.. cioè io ho un masterpage con un menù, e poi le pagine di contenutp con la sezione centrale del sito. ma ogni pagina ha bisogno di stili differenti, quindi ad ogni pagina centrale servirebbe un css diverso.. se devo fare un masterpage per ogni pagina tanto vale che faccio tutto in html senza usare le master page..




Modificato da schoolfighter il 26 marzo 2008 15.29 -
126 messaggi dal 14 aprile 2006
la seconda soluzione funziona.. wow fantastico nn pensavo si potesse.. fare
basta inserire 2 conten place holder nella master page.. grazie mille!
492 messaggi dal 08 gennaio 2007
"schoolfighter" <schoolfighter> ha scritto nel messaggio news:320391@...
allora la prima soluzione ci avevo già pensato, ma ciò significherebbe che dovrei creare tante masterpage, con dentro tanti menù tutti uguali.. e questo nn va bene.
allora cosa le uso a fare le master page.. cioè io ho un masterpage con un menù, e poi le pagine di contenutp con la sezione centrale del sito. ma ogni pagina ha bisogno di stili differenti, quindi ad ogni pagina centrale servirebbe un css diverso.. se devo fare un masterpage per ogni pagina tanto vale che faccio tutto in html senza usare le master page..

Questo non è proprio esatto, ad esempio posso definire una master che contiene l'aspetto generale del sito, una figlia che definisce ad esempio le pagine con layout a 3 colone, una con layout da 2 colonne ecc, beninteso ho ipotizzato che le tue innumerevoli pagine non fossero tutte completamente diverse, ma che potessero essere riconducibili a tipologie comuni, e si ottiene un vantaggio considerevole nella pulizia e nell'ordine del markup, ti ritrovi infine solamente a definire il contenuto reale, ma questa è solo una mia personalissima opinione...
111 messaggi dal 28 marzo 2001
Buongiorno, ho lo stesso problema, ho fatto come suggerito e cioè nel <asp:ContentPlaceHolder id="ExtraPageHead" runat="server" /> della pagina che deriva dalla master caricare il foglio di stile in base a certe condizioni:

protected void Page_Init(object sender, EventArgs e)
{
if (String.IsNullOrEmpty(Request.QueryString["qsModello"]) == false)
{
HtmlLink _link = new HtmlLink();
_link.Href = FunzioniComuni.PATHCSSMODELLO + FunzioniComuni.DescriviCssModello(Modello);
_link.Attributes.Add("rel", "stylesheet");
_link.Attributes.Add("type", "text/css");
_link.Attributes.Add("id", "pippo");
Master.FindControl("head").Controls.Add(_link);
}
}

il sorgente HTML prodotto è :

<link href="App_Themes/GapSkinFile/StyleSheetModelloA.css" rel="stylesheet" type="text/css" id="pippo" />
<link href="App_Themes/GapSkinFile/StyleSheet.css" type="text/css" rel="stylesheet" />
<link href="App_Themes/GapSkinFile/StyleSheetModelloA.css" type="text/css" rel="stylesheet" />
<link href="App_Themes/GapSkinFile/StyleSheetModelloB.css" type="text/css" rel="stylesheet" />
<link href="App_Themes/GapSkinFile/StyleSheetModelloC.css" type="text/css" rel="stylesheet" />

Lo stile applicato è l'ultimo, il modello C.

Ora la mia domanda è: chi ha aggiunto gli altri fogli di stile?Quelli che vedete elencati non in grassetto sono quelli del progetto.
La pagina in questione contiene un controllo wizard e ogni step del controllo carica uno user control, ma l'impostazione del foglio di stile è fatta solo nella init della mia pagina, non negli user control.

C'è qualcosa che non va da subito perchè la default ha già lo stile del modello C anche se nessuno (o meglio io  ) glielo ha impostato.

Vi ringrazio per l'attenzione e collaborazione.
Modificato da Mirella il 08 agosto 2008 16.45 -

Mirella
111 messaggi dal 28 marzo 2001
Scusate l'ignoranza ... ma perchè ho risolto tutto sostituendo nel web.config <pages theme ="GapSkinFile"> con <pages> ? Nel mio file GapSkinFile.skin ci sono una serie di controlli con determinate formattazione, nessun riferimento ai file .css
es:

<asp:TextBox Font-Names="Tahoma, Arial, Helvetica, sans-serif" ForeColor="#000080" Font-Size="8pt" runat="server" />
<asp:Label Font-Bold="true" ForeColor="orange" runat="server" skinid="obbligatori" />
<asp:Label Font-Bold="true" ForeColor="red" BackColor="Yellow" runat="server" skinid="errore" />

Mirella

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.