2009-08-08 6 views
3

Dans la page de ma sélection, définissez la feuille de style qui définit la disposition.Modification de la feuille de style dans le code de la page maître

<link id="layoutStylesheet" href="CSS/Layout3Col.css" rel="stylesheet" type="text/css" runat="server" /> 

J'ai une page ShowDoc.aspx qui hérite de la page maître.
Je souhaite charger un fichier css différent lorsqu'un paramètre spécifique est transmis à ShowDoc.aspx dans la chaîne de requête.

Comment puis-je le faire?
Dois-je définir une propriété publique dans la page maître afin que showDoc.aspx puisse y accéder et modifier la feuille de style?

Répondre

9

Vous pouvez trouver le lien stylesheet en utilisant la propriété Master sur la page ShowDoc en Page_Load et redéfinir la propriété Href là.

HtmlLink link = Page.Master.FindControl("layoutStyleSheet") as HtmlLink; 
link.Href = ...your chosen stylesheet... 
0

Un tas de façons différentes, mais le plus simple est peut-être ajouter que ce genre de code Form_Load de votre masterpage:

switch (Request["whateverstyle"]) { 
    case "style1" : layoutStylesheet.Attributes["href"] = "style1.css"; 
    case "style2" : layoutStylesheet.Attributes["href"] = "style2.css"; 
    ... 
} 
+0

Est-ce efficace? Une seule page parmi beaucoup d'autres qui héritent de cette page maître doit changer de css, mais avec cela chaque pafe sera vérifié. –

0

Selon le nombre de pages que vous avez qui voudront changer cela, et combien d'autre est changé en même temps, vous pouvez envisager des pages maîtres imbriquées.

La page maître racine peut définir doctype/html/head/body et tous les éléments partagés; vos pages maîtres "enfant" peuvent l'utiliser comme leur propre page maître. Les pages utiliseront uniquement les pages maîtres enfant.

Notez que vous pouvez utiliser les contrôles ContentPlaceHolder en dehors d'un formulaire, vous pouvez donc en ajouter un dans l'élément HEAD.

+0

Une seule page "showdoc.aspx", lorsque "version d'impression" est sélectionné. –

+0

OK, probablement pas la peine d'utiliser des pages maîtres imbriquées juste pour cela. –

Questions connexes