2010-12-03 12 views
2

Ich habe eine Masterseite namens MasterPage.master, die eine <fieldset> mit einem <legend> Tag hat. Etwas wie das:ASP.NET Wie legt man Text auf einer Masterseite fest?

<fieldset id="NewTrade" runat="server"> 
    <legend runat="server" class="legend"><%= this.BodyTitle %></legend> 
    <asp:ContentPlaceHolder id="contentMain" runat="server" />  
</fieldset> 

Die masterpage.master-Datei erbt SiteMaster von SiteMaster.cs. SiteMaster hat ein öffentliches Feld namens BodyTitle. Ich möchte das BodyTitle einstellen, wenn eine normale Seite geladen wird, aber ich bin nicht sicher, wie das geht. Im Grunde genommen möchte ich nur eine Legende um meinen Master-Inhalt haben und dann den Legendentext für jede Seite auf der Seite laden. Was ist der beste Weg, das zu tun?

Also, in Default.aspx sagen, dass ich so etwas wie dies in Page_Load tun wollen:

BodyTitle.Text = "Home"

Dank

Antwort

2
(this.Master as SiteMaster).BodyTitle.Text = "Home"; 

Dies wirft die Master-Seite Eigenschaft Ihrer Seite an der Basis Klasse SiteMaster. Sie können es auch direkt in die MasterPage-Klasse (von Ihrem MasterPage.master) übertragen, aber wenn Sie dies tun, dann ist @ Gregs Antwort besser, obwohl sie beide funktionieren. Kommt nur auf Ihre Anforderungen an. Das Festlegen der MasterType-Eigenschaft der aspx-Seite ist eine großartige Lösung. Wenn Sie jedoch Ihre Masterseite dynamisch umstellen oder flexibler sein möchten, würde die obige Lösung besser passen.

+0

Ich bin mir nicht sicher, was die BodyTitle-Eigenschaft ist oder wenn es eine Texteigenschaft hat, verwende ich nur das Beispiel des OP. Meine Antwort soll nur veranschaulichen, wie Sie auf die Eigenschaften (in diesem Fall die benutzerdefinierte Eigenschaft BodyTitle) einer Masterseite von einer Inhaltsseite zugreifen können. – theChrisKent

1

Sie würden die Master Eigenschaft des Page Objekts verwenden und in Ihre SiteMaster Klasse umwandeln.

((SiteMaster)this.Master).BodyTitle = "Home"; 
1

Sie können diese Seite an der Spitze Ihrer Inhalte setzen:

<%@ MasterType VirtualPath="~/masterpage.master" %> 

, die automatisch die Master-Eigenschaft Ihrer Seite verursacht von der Art Ihrer Meisterklasse sein, so können Sie dann Zugriff auf die Eigenschaft ohne Casting

Verwandte Themen