概要
コンテンツページのコードからマスターページのコントロールにアクセスする方法を紹介します。
マスターページのコントロールにアクセスする方法としては、次の方法があります。
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