从母版页更改子页面的文本

时间:2017-02-15 06:36:40

标签: c# asp.net master-pages

我需要根据一些逻辑从母版页改变子页面的文本。以下是我在母版页中的代码:

<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 个答案:

答案 0 :(得分:1)

您可以在MasterPage中搜索控件。如果您像在示例中一样直接在ContentPlaceHolder中设置文本,则文本将位于LiteralControl中:

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

或者,如果要搜索页面控件集合中的控件:

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

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