【发布时间】:2012-05-16 08:23:53
【问题描述】:
我的母版页包含以下内容:
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
<asp:Label ID="User" runat="server" Text="Welcome, " Visible="false"></asp:Label>
</asp:ContentPlaceHolder>
我正在尝试像这样访问标签:
Label welcomeLabel;
ContentPlaceHolder cPlaceHolder;
cPlaceHolder = (ContentPlaceHolder)Master.FindControl("ContentPlaceHolder1");
if (cPlaceHolder != null)
{
welcomeLabel = (Label)cPlaceHolder.FindControl("User");
if (welcomeLabel != null)
{
welcomeLabel.Text = "Welcome, " + u.Name;
welcomeLabel.Visible = true;
}
}
我已经检查过 ContentPlaceHolder1 是否真的被找到,并且在它上面使用 HasControls() 返回 true,但我似乎无法访问标签。
帮帮我?
【问题讨论】:
-
尝试查找 this.Master.FindControl("User");看看会不会来
-
你在什么时候调用你的代码?另外,我认为这段代码是在嵌入另一个内容占位符的页面的上下文中运行的吗?我可以告诉你,你的代码在这里有效。
-
@platon - 此代码在页面加载时运行。当我在实际页面中放置一个带有 id=user 的标签时,这个代码被调用,但我对母版页的理解是我不应该这样做。
-
@Jackass,对不起,我没听懂你的意思。你能上传一个样本吗?
标签: c# asp.net master-pages contentplaceholder