FindControlを使用せずに、コンテンツページからマスターページにラベルを設定しようとしています。だから、マスターページに私が宣言:masterpageでコントロールを見つける
public partial class MainMasterPage : System.Web.UI.MasterPage
{
public string UserOfficeLabel
{
get { return lblUserOffice.Text; }
set { lblUserOffice.Text = value; }
}
public string OfficeLocationLabel
{
get { return lblOfficeLocation.Text; }
set { lblOfficeLocation.Text = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
....
}
}
「UserOfficeLabel」と「OfficeLocationLabel」マスターページ上のラベルです。
Master.UserOfficeLabel = ...
:私はラベルを設定/アクセスしよう背後conentページのコード(.csファイルのファイル)で
<%@ MasterType VirtualPath="~/Main/MainMasterPage.master" %>
:そして、コンテンツページ(.aspxの)中で、私は「ページ」ディレクティブの下に次のディレクティブを追加しました
UserOfficeLabelはMasterのオプションではありません(VS Intellisenseはオプションとしてリストしません)。とにかくそれを追加すると、「MainMasterPage.UserOfficeLabelは保護レベルにアクセスできない」と表示されます
なぜFindControlを使用したくないのですか? –
"私はネジを持っていますが、何かにネジを差し込みたいのですが、ドライバーを使用したくないのですが、助けてください。 – asawyer
FindControlの使用はOO /カプセル化の観点から悪いので、可能であれば避けてください。これは、C++でのポインタによるプライベート変数の公開に似ています。これがあなたの質問に答えることを願っています – NoBullMan