我需要根据一些逻辑从母版页改变子页面的文本。以下是我在母版页中的代码:
<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的值更改为任何其他值?
答案 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;
}
}