マスターページのコントロールへアクセスする方法 - ASP.NET

概要

コンテンツページのコードからマスターページのコントロールにアクセスする方法を紹介します。
マスターページのコントロールにアクセスする方法としては、次の方法があります。

FindControlを用いる方法

Master.FindControl()メソッドを利用します。

下記コードの記述により、マスターページに配置したLiterlコントロール(Literl_MasterPageコントロール)にアクセスできます。
詳細については「マスターページのコントロールを操作する (FindControlを利用する) (ASP.NET プログラミング)」の記事を参照してください。
Literal lc = (Literal)Master.FindControl("Literal_MasterPage");
lc.Text="挿入テキスト";

マスターページクラスにプロパティを実装する方法

マスターページのcsコードに以下を追加します。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ContentsContainer
{
public partial class SiteMaster : System.Web.UI.MasterPage {
  /*ここから追加*/
  public String MasterPageText
  {
    set { Literal_MasterPage.Text = value; }
  }
  /*ここまで追加*/
}
次にWebコンテンツフォーム側の aspxコードに以下のディレクティブを追加します。位置はPageディレクティブの直下(2行目)あたりが良さそうです。
(MyMaster.master の部分はマスターページのファイル名になります。)
<%@ MasterType VirtualPath="~/MyMaster.master" %> 

WebコンテンツフォームのPage_Loadイベント等で下記コードでマスターページのLiterlコントロールにアクセスできます。 詳しくは「マスターページのコントロールを操作する (マスターページのクラスにメソッドやプロパティを実装) (ASP.NET プログラミング)」の記事を参照してください。
Master.MasterPageText= "挿入テキスト";

著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2021-08-24
作成日: 2009-11-07
iPentec all rights reserverd.