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

Translate

Je veux spécifiquement ajouter le style debackground-colorà la<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 faire en sorte que la page maître ait 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 de plus 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 ne peux pas faire fonctionner la ligne ci-dessus. J'ai seulement besoin de changer lebackground-colorpour le<body>balise de la page.

This question and all comments follow the "Attribution Required."

Toutes les réponses

Translate

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 maintenant simplement utiliser

Master.FindControl("masterpageBody")

et avoir accès au contrôle. Maintenant, vous pouvez changer les propriétés / styles que vous aimez!

La source
Translate

Voici ce que j'ai proposé:

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.

La source
Translate

Je crois que vous parlez d'un système de gestion de contenu. La façon dont j'ai été confronté à 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
La source