Comment puis-je changer l'arrière-plan d'une page maître à partir du code derrière une page de contenu ?
-
08-06-2019 - |
Question
Je veux spécifiquement ajouter le style de background-color
au <body>
balise d'une page maître, à partir du code derrière (C#) d'une page de contenu qui utilise cette page maître.
J'ai différentes pages de contenu qui doivent donner à la page maître des couleurs différentes en fonction de la page de contenu chargée, afin que la page maître corresponde au thème de la page de contenu.
J'ai une solution ci-dessous:
Je recherche quelque chose comme :
Master.Attributes.Add("style", "background-color: 2e6095");
À l'intérieur de la fonction de chargement de page de la page de contenu.Mais je n'arrive pas à faire fonctionner la ligne ci-dessus.Il me suffit de changer le background-color
pour le <body>
balise de la page.
La solution
Ce que je ferais pour le cas particulier est:
je.Définir le corps en tant que contrôle côté serveur
<body runat="server" id="masterpageBody">
ii.Dans votre page aspx de contenu, enregistrez la MasterPage avec le registre :
<% MasterPageFile="..." %>
iii.Dans la page de contenu, vous pouvez désormais simplement utiliser
Master.FindControl("masterpageBody")
et avoir accès au contrôle.Maintenant, vous pouvez modifier les propriétés/styles de votre choix !
Autres conseils
Voici ce que j'ai trouvé :
Dans la fonction de chargement de page :
HtmlGenericControl body = (HtmlGenericControl)Master.FindControl("default_body");
body.Style.Add(HtmlTextWriterStyle.BackgroundColor, "#2E6095");
Où
default_body = l'identifiant de la balise body.
Je crois que vous parlez d'un système de gestion de contenu.La façon dont j'ai géré cette situation dans le passé est de :
- Autoriser une page/un contenu à définir une feuille de style personnalisée supplémentaire ou
- Autoriser une page/un contenu à définir des balises de style en ligne