Wie kann ich den Hintergrund einer Masterseite anhand des Code-Behinds einer Inhaltsseite ändern?
-
08-06-2019 - |
Frage
Ich möchte speziell den Stil von hinzufügen background-color
zum <body>
Tag einer Masterseite aus dem Code Behind (C#) einer Inhaltsseite, die diese Masterseite verwendet.
Ich habe verschiedene Inhaltsseiten, die dafür sorgen müssen, dass die Masterseite je nach geladener Inhaltsseite unterschiedliche Farben hat, damit die Masterseite zum Thema der Inhaltsseite passt.
Ich habe unten eine Lösung:
Ich suche eher etwas wie:
Master.Attributes.Add("style", "background-color: 2e6095");
Innerhalb der Seitenladefunktion der Inhaltsseite.Aber ich bekomme die obige Zeile nicht zum Laufen.Ich muss nur das ändern background-color
für die <body>
Tag der Seite.
Lösung
Was ich im Einzelfall tun würde, ist:
ich.Definieren Sie den Körper als serverseitiges Steuerelement
<body runat="server" id="masterpageBody">
ii.Registrieren Sie auf Ihrer Content-ASPX-Seite die MasterPage mit dem Register:
<% MasterPageFile="..." %>
iii.Auf der Inhaltsseite können Sie nun einfach verwenden
Master.FindControl("masterpageBody")
und Zugriff auf die Steuerung haben.Jetzt können Sie alle Eigenschaften/Stile ändern, die Ihnen gefallen!
Andere Tipps
Folgendes habe ich mir ausgedacht:
In der Seitenladefunktion:
HtmlGenericControl body = (HtmlGenericControl)Master.FindControl("default_body");
body.Style.Add(HtmlTextWriterStyle.BackgroundColor, "#2E6095");
Wo
default_body = die ID des Body-Tags.
Ich glaube, Sie sprechen von einem Content-Management-System.Ich bin in der Vergangenheit folgendermaßen mit dieser Situation umgegangen:
- Erlauben Sie einer Seite/einem Inhalt, ein zusätzliches benutzerdefiniertes Stylesheet zu definieren oder
- Erlauben Sie einer Seite/einem Inhalt, Inline-Stil-Tags zu definieren