无法动态添加控件到<asp:placeholder> </asp:placeholder>

时间:2014-03-13 11:30:52

标签: c# asp.net

我有一个名为PromoArea.ascx的控件。这是前端的代码

<div class="vh-right-rail-promoarea">
<asp:PlaceHolder ID="DynamicControl1" runat="server"></asp:PlaceHolder>
</div>

我已在pages.config中注册了此Web部件并将其放在我的模板上

<site:PromoArea ID="PromoArea" runat="server"/>

但是,当我尝试动态添加控件时,placeHolder返回null。这是我的代码

PlaceHolder ph = 
    (PlaceHolder)this.Page.FindControl("DynamicControl1");
ph.Controls.Add("controlName");

ph返回null。我在某处读到如果你想在placeHolder中添加一个控件,你必须首先在页面上找到一个占位符,然后再将其添加到控件中。那么为什么我的占位符控件返回null呢?

2 个答案:

答案 0 :(得分:0)

我怀疑它是null,因为对它的引用不正确。

您使用母版页吗?如果是这样,试试:

PlaceHolder ph = Master.FindControl("DynamicControl1") as PlaceHolder

答案 1 :(得分:0)

我刚刚结束了#34; DynamicControl1&#34;直   DynamicControl1.Controls.Add(_imageControl1);

这似乎有效。我最初尝试先抛出PlaceHoder控件,因为我记得有一篇MSDN博客说如果你把一个控件放在一个占位符中,你必须首先找到那个placeHolder