Silverlight をインストールするには、ここをクリックします*
Japan変更|すべてのMicrosoft のサイト|サインイン
MSDN
|MSDN ライブラリ|デベロッパー センター|ダウンロード情報|開発ツール製品|コミュニティ|ご意見・ご要望|サイトマップ
MSDN Home > ステップ 7 > ASP.NET 2.0 プログラミング編 > ASP.NET 2.0 を利用したマスタ ページによるページ テンプレートの実装 その 3

ステップ 7 ハンズオン:
ASP.NET 2.0 を利用したマスタ ページによるページ テンプレートの実装 その 3

複数のマスタ ページを入れ子にする

グローバル ナレッジ ネットワーク株式会社
ナレッジ ソリューション本部 鈴木和久

最終更新日 2005 年 10 月 14 日

目標 ASP.NET 2.0 を利用したマスタ ページによるページ テンプレートの実装
使用技術
  • ASP.NET 2.0
  • Visual Basic 2005
取り上げるトピックス
  • ASP.NET 2.0 を利用したマスタ ページを入れ子にする方法
前提知識
目次
まとめ

ASP.NET 2.0 ではマスタ ページによるテンプレートをあらかじめ作成しておき、それを任意の Web ページに継承して利用できます。
この機能により、サイト内の複数のページのデザインを共通化し、一貫した管理が可能になります。

備考

複数のマスタ ページを入れ子にする

ここでは、ASP.NET 2.0 マスタ ページを入れ子にします。

Visual Studio 2005 の [ファイル] メニューの [新規作成] をポイントし、[ファイル] をクリックします。

[新しい項目の追加]ダイアログ ボックスで、以下のように指定して 子マスタ ページ SubMasterPage.master を作成します。

  ・ [テンプレート] 欄:   マスタ ページ

  ・ [名前] 欄:   SubMasterPage.master

  ・ [言語] 欄:   Visual Basic

  ・ [別のファイルにコードを書き込む] チェック ボックス:   ON

 

[追加] をクリックします。

[ソリューション エクスプローラ] で 「SubMasterPage.master」 が追加されたことを確認します。

 

 

SubMasterPage.master を [ソース] 表示のままで編集します。

<%@ Master %> ディレクティブに MasterPageFile 属性を追加することで MyMasterPage.master を親マスタ ページとして指定します。


<%@ Master Language="VB"MasterPageFile="MyMasterPage.master" CodeFile="SubMasterPage. master.vb" Inherits="SubMasterPage" %>

SubMasterPage.master の <%@ Master %> ディレクティブの下のコードをすべて削除します。

<Content> 要素を追加して、その中に ContentPlaceHolder を含む子マスタ ページのテンプレートの内容を追加します。

 SubMasterPage.master の完成したサンプル ソースは以下のようになります。


<%@ Master Language="VB" MasterPageFile="~/MyMasterPage.master" CodeFile="SubMasterPage.master.vb" Inherits="SubMasterPage" %>
<asp:Content ID="NewContent" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
  <br />
  <asp:Label ID="Label1" Font-Bold="True" Font-Size="X-Large" ForeColor="Green" Text="--- Input Form ---" runat="server">
  </asp:Label>
  <br />
  <br />
  <asp:ContentPlaceHolder ID="ContentPlaceHolder2" runat=server>
  </asp:ContentPlaceHolder>
</asp:Content>


MyWebForm.aspx のコンテンツを 子マスタ ページ SubMasterPage.master の ContentPlaceHolder2 に入れるため、MyWebForm.aspx のソースを以下のように編集します。

  ・ <%@ Master %> ディレクティブの MasterPageFile 属性による指定を "SubMasterPage.master" に変 更する。

  ・ <asp:Content > 要素の ContentPlaceHolderID 属性による指定を "ContentPlaceHolder2" に変更 する

MyWebForm.aspx の変更箇所は以下のようになります。


<%@ Page Language="VB" MasterPageFile="SubMasterPage.master AutoEventWireup="false" CodeFile="MyWebForm.aspx.vb" Inherits="MyWebForm" title="Untitled Page" %> <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">

ソリューションをビルドし、MyWebForm.aspx をスタート ページとして起動すると、MyMasterPage.master のテンプレートに SubMasterPage.master のテンプレートが入れ子になっていることを確認できます。

 

 

まとめ

以上のように、ASP.NET 2.0 ではマスタ ページによるテンプレートをあらかじめ作成しておき、それを任意の Web ページに継承して利用できます。

この機能により、サイト内の複数のページのデザインを共通化し、一貫した管理が可能になります。


Top of Page Top of Page

Microsoft