Wie kann ich den Hintergrund einer Masterseite anhand des Code-Behinds einer Inhaltsseite ändern?

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

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

War es hilfreich?

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:

  1. Erlauben Sie einer Seite/einem Inhalt, ein zusätzliches benutzerdefiniertes Stylesheet zu definieren oder
  2. Erlauben Sie einer Seite/einem Inhalt, Inline-Stil-Tags zu definieren
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top