2012-05-08 11 views

答えて

4

あなたのMasterPageには、ラベルのテキストの設定/取得に使用できる公共財産を提供することをお勧めします。あなたのマスターで

(それはタイプがSiteMasterと呼ばれていますと仮定した場合):あなたのボタンのクリックイベントハンドラで

public String ShoppingCartNumber{ 
    get{ return LblShoppingCart.Text; } 
    set{ LblShoppingCart.Text = value; } 
} 

SiteMaster master = (SiteMaster)Page.Master; 
master.ShoppingCartNumber = "1234"; 

このアプローチは、ストレートフォワードエラーを受けにくいと簡単です読める。ページを変更することなくマスターのコントロールを変更することもできます(たとえば、LabelをTextBoxに置き換える場合)。

+0

私は特定のマスターにpage.masterをキャストしているため、マスターのパブリックプロパティを取得できません。だから私はどのようにそのプロパティを取得するか、コントロール(ラベル)を見つけてそのラベルの値を設定する必要があります。 –

+0

@ user1372444:上記のようにマスターにそのプロパティを実装しましたか?もしそうなら、コンテンツページのボタンクリックから '((YourMasterType)Page.Master).ShoppingCartNumber'を介してアクセスしようとすると、どのようなエラーが表示されますか? –

+0

申し訳ありません...私は元のマスターの代わりに別のマスターを使用していました。 –

0

これは

Label mpLabel = (Label) Master.FindControl("masterPageLabel"); 
if(mpLabel != null) 
{ 
    Label1.Text = "Master page label = " + mpLabel.Text; 
} 
0

これを試してみて試してみてください:
はあなたのmasterpage.csファイルに追加します。

public Label lbl 
    { 
     get { return YourLabelId; } 
     set { YourLabelId= value; } 
    } 

は、あなたのコンテンツページでこれを追加:コンテンツページで次にアクセス

<%@ MasterType VirtualPath="~/YourMasterPageName.Master" %> 

あなたのボタンのクリックイベント:

string name = Master.lbl.text; 
関連する問題