Comment puis-je changer l'arrière-plan d'une page maître à partir du code derrière une page de contenu ?

StackOverflow https://stackoverflow.com/questions/2209

  •  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.

Était-ce utile?

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");

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 :

  1. Autoriser une page/un contenu à définir une feuille de style personnalisée supplémentaire ou
  2. Autoriser une page/un contenu à définir des balises de style en ligne
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top