【问题标题】:Can't access label in content place holder in master page无法访问母版页内容占位符中的标签
【发布时间】: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


【解决方案1】:

我也有同样的问题。

我所做的是

  MasterPage ctl00 = FindControl("ctl00") as MasterPage;
ContentPlaceHolder cplacehld = ctl00.FindControl("ContentPlaceHolder1") as ContentPlaceHolder;
                Label label1= cplacehld.FindControl("User") as Label;

【讨论】:

    【解决方案2】:

    尝试:

    ((Label)this.Page.Master.FindControl("User")).Text = "Welcome, " + u.Name;   
    ((Label)this.Page.Master.FindControl("User")).Visible = true;
    

    【讨论】:

      【解决方案3】:

      这个问题困扰了我大约两个小时,直到我意识到如果我的页面上有一个 asp:Content 标记,并且 contentplaceholderID 设置为母版页中 contentplaceholder 的 ID,我将永远无法访问任何控件在contenplacholder。 asp:Content 页面始终与 MasterPage 内容合并,即使 asp:Content 标记在您的内容页面上为空。为了提供默认内容,我将标签移到 contentplaceholder 标记之外,并将可见性设置为 false。如果我随后动态确定我的 asp:Content 标记没有任何内容,那么我只需将标签可见性设置为 true 以显示我的默认内容。不是很优雅,但它确实有效。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多