我有一个名为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呢?
答案 0 :(得分:0)
我怀疑它是null,因为对它的引用不正确。
您使用母版页吗?如果是这样,试试:
PlaceHolder ph = Master.FindControl("DynamicControl1") as PlaceHolder
答案 1 :(得分:0)
我刚刚结束了#34; DynamicControl1&#34;直 DynamicControl1.Controls.Add(_imageControl1);
这似乎有效。我最初尝试先抛出PlaceHoder控件,因为我记得有一篇MSDN博客说如果你把一个控件放在一个占位符中,你必须首先找到那个placeHolder