2009-07-19 13 views
7

lblHeadingという名前のマスターページ(sample.master)にラベルがあります。コンテンツページを読み込むときに、マスターページ内のラベルのテキストを変更することはできますか?

コンテンツページを読み込むときに、ラベルのテキストを動的に変更したいと考えています。

見出しを意味のあるものに変更したいが、私はページの内容を知った後でなければならないので、これを行う必要がある。

これは可能ですか?

答えて

6

はい。

strongly-type master pageを作成して、Page Loadなどのコンテンツページからそのプロパティにアクセスできます。

2

マスターページでラベルを変更するパブリックプロパティを作成できます。

public string Heading 
{ 
    set 
    { 
     lblHeading.text = value; 
    } 

} 
3

はい、可能です。 MasterPageは、あなたのページにUserControlのように振る舞います。これを実装する

可能なステップ:

  1. はあなたがラベルに変更を加えることができますマスターページ上のプロパティやメソッドを作成します。例えば:あなたのPageから

    public void ChangeLabel(string label) { 
        lblHeading.Text = label; 
    } 
    
  2. Page.Masterプロパティを使用してMasterPageへの参照を取得します。

  3. MasterPageの内容を変更するには、手順1で定義したメソッドを呼び出します。

追加情報:あなたはそれを行う方法についてはCoding the Wheel's linkを試してみてください、あなたのMasterPage型にPage.Masterをキャストする必要があるかもしれません。

+0

...ので、私はこれをしなければならなかった... ContentPlaceHolderコントロール内のLabelコントロールを持っていたあなたのページから(マスターページは、ID =「Label_welcome」とラベルを持っている)、これを行います: ラベルmpLabel =(ラベル)Page.Master.FindControl( "Label_welcome"); 場合(mpLabel = nullを!) { mpLabel.Text = "ようこそファジオ!"。 } –

13

上述のように、はい、あなたはこの非常に簡単な方法で........

​​
2

を行うことができます。その後、例えば、あなたのページからこの(マスターページは、ID =「Label_welcome」とラベルを持って)実行します。マスターページがあるの内側に

Label mpLabel = (Label)Page.Master.FindControl("Label_welcome"); 

    if (mpLabel != null) 
    { 
    mpLabel.Text = "Welcome Fazio!"; 
    } 
0

また、どのように深いあなたのコントロールに依存します。私の場合、例えば、

Label myLBL = this.Master.FindControl("HeaderContent").FindControl("myLabel") as Label; 
関連する問題