2017-02-15 9 views
0

いくつかのロジックに応じて、子ページのヘッダーのテキストをマスターページから変更する必要があります。以下は、マスターページでは私のコードです:子ページで子ページのテキストをマスターページから変更する

<div id="content-header"> 
    <h1> 
     <asp:ContentPlaceHolder ID="cphHead" runat="server"></asp:ContentPlaceHolder> 
    </h1> 
</div> 

私はコードの下にあります

<asp:Content ID="Content3" ContentPlaceHolderID="cphHead" runat="Server"> 
    TEXT 
</asp:Content> 

はどのようにして、マスターページから他にTEXTの値を変更できますか?

答えて

1

あなたはマスターページのコントロールを検索することができます。あなたはあなたの例のように、あなたのContentPlaceHolderに直接テキストを設定すると、テキストがLiteralControlになります。

ControlCollection controls = this.FindControl("cphHead").Controls; 

foreach (Control control in controls) 
{ 
    if (control.GetType() == typeof(LiteralControl)) 
    { 
     ((LiteralControl)control).Text = "Change TEXT"; 
     break; 
    } 
} 

((LiteralControl)this.FindControl("cphHead").Controls[0]).Text = "Change TEXT"; 

それともページコントロールコレクション内のコントロールに検索したい場合は