ASP.NET実践:ASP.参照NETコントロールページの内容
1806 ワード
コンテンツ・ページにコードを記述して、制御ページのプロパティ、メソッド、およびサブコントロールを参照できますが、プロパティとメソッドについて、制御ページの共通メンバーとして定義されている場合にのみ参照できます.共通プロパティと共通メソッドも含まれます.また、共通メンバー参照とは独立した方法で制御ページのコントロールを参照することもできます.
制御ページの共通メンバーの参照方法は、コンテンツページに は、制御ページの共通メンバーを を付与することを意味する.
制御ページのコントロールを参照する方法は、
制御ページの共通メンバーの参照方法
@ MasterType
命令を追加する.この命令において、VirtualPath
パラメータの値を現在の制御ページのパスとして設定し、以下の例:
<%@ MasterType virtualpath="~/Masters/Master1.master" %>
は、命令がコンテンツページのMaster
属性を強くタイプ化することを示す.Master
の属性メンバーとして使用するコードを記述する、この例では、コンテンツページのテキスト入力ボックスにおいて、制御ページの共通属性CompanyName
に対して制御ページのコントロールを参照する方法
FindControl
メソッドを使用して、Master
をネーミングコンテナとして使用したときに返される値を使用します.次の例では、制御ページの2つのコントロール(1つのFindControl
コントロールと1つのTextBox
コントロール)を参照するためにLabel
メソッドを使用する方法を示します.TextBox
コントロールはContentPlaceHolder
の内部にあるため、まずContentPlaceHolder
コントロールの参照を取得し、FindControl
メソッドを使用してTextBox
コントロールを位置決めする必要があります.
void Page_Load()
{
// ContentPlaceHolder TextBox
ContentPlaceHolder mpContentPlaceHolder;
TextBox mpTextBox;
mpContentPlaceHolder =
(ContentPlaceHolder)Master.FindControl("ContentPlaceHolder1");
if(mpContentPlaceHolder != null)
{
mpTextBox =
(TextBox) mpContentPlaceHolder.FindControl("TextBox1");
if(mpTextBox != null)
{
mpTextBox.Text = "TextBox !";
}
}
// ContentPlaceHolder Label
Label mpLabel = (Label) Master.FindControl("masterPageLabel");
if(mpLabel != null)
{
Label1.Text = " = " + mpLabel.Text;
}
}