2010-12-03 12 views
2

私は<fieldset><legend>タグを持つMasterPage.masterというマスターページを持っています。このような何か: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"; 

これがベースにあなたのページのマスターページのプロパティをキャストクラスSiteMaster。また、MasterPageクラスのMasterPageクラスに直接キャストすることもできますが、これを行う場合は、@ Gregの回答が良いですが、両方とも動作します。ちょうどあなたの要件に依存します。 aspxページのMasterTypeプロパティを設定することは素晴らしい解決策ですが、マスターページの動的切り替えを行っている場合や、より柔軟にしたい場合は、上記の解決策がうまく適合します。

+0

BodyTitleプロパティの内容が不明です。またはTextプロパティがある場合は、OPの例を使用しています。私の答えは、コンテンツページからマスターページのプロパティ(この場合はカスタムプロパティBodyTitle)にアクセスする方法を説明することです。 – theChrisKent

1

PageオブジェクトのMasterプロパティを使用し、SiteMasterクラスにキャストします。そのようにすることができます、自動的にあなたのページのマスタープロパティは、あなたのマスタークラスの型であることになります

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

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

あなたのコンテンツページの上部にこれを置くことができますキャストせずにプロパティにアクセスします。

関連する問題