2010-12-03 65 views
2

我有一個名爲MasterPage.master的主頁面,它有一個<fieldset>和一個<legend>標籤。例如:ASP.NET如何在母版頁上設置文本?

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

masterpage.master文件從SiteMaster.cs繼承SiteMaster。 SiteMaster有一個名爲BodyTitle的公共字段。我想在正常頁面加載時設置BodyTitle,但我不確定如何操作。基本上我想要做的就是圍繞我的主內容添加一個圖例,然後在頁面加載時爲每個頁面設置圖例文本。什麼是最好的方式來做到這一點?

所以,在說的Default.aspx我想要做這樣的事情在Page_Load

BodyTitle.Text = "Home"

感謝

回答

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

這蒙上你的頁面的母版頁屬性爲基礎class SiteMaster。你也可以直接將它轉換到MasterPage類(從你的MasterPage.master),但是如果你打算這樣做,那麼@ Greg的答案會更好,儘管它們都可以工作。取決於你的要求。設置aspx頁面的MasterType屬性是一個很好的解決方案,但是如果您正在進行母版頁的動態切換或希望更靈活,那麼上述解決方案會更好。

+0

我不確定BodyTitle屬性是什麼,或者它有Text屬性,我只是使用OP的示例。我的回答只是爲了說明如何從內容頁面訪問母版頁的屬性(在本例中是自定義屬性BodyTitle)。 – theChrisKent 2010-12-03 15:19:33

1

您將使用Page對象的Master屬性,並將其轉換爲SiteMaster類。

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

您可以在內容頁面的頂部加上:

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

這將自動導致你的頁面的主屬性爲您的大師班的類型,所以你可以再訪問該屬性而不投射。

相關問題