尝试使用以下代码块在我的页面中插入控件时,我遇到了此异常
由于控件无法修改Controls集合 包含代码块
Literal lite=new Literal();
lite.Text = @"<div class='cookieLaw_slidesharey'><a id='cookieLaw_slideshare' href='#'><img src='/img/content/cookielaw_slideshare.jpg'/></a></div>";
Control control = this.FindControl("PlaceHolder");
control.Controls.AddAt(0,lite);
我试图遵循这个帖子中写的建议:
"The Controls collection cannot be modified because the control contains code blocks"
基本上是:
将<%= %>
替换为<%# %>
并添加
页面加载 Page.Header.Databind()
但我得到以下例外:
对象引用未设置为对象的实例。
感谢您的帮助。
PS:我使用的是.NET 3.5
答案 0 :(得分:1)
检查“PlaceHolder”是否具有runat=server
属性。这应该已经有所帮助。您可以通过它的id来解决该控件,而不是使用FindControl。
您的Page.Header.Databind()
无法正常工作的原因可能是因为您没有像runat = server那样的头部分,就像您复制的示例一样。他们在标题中添加了控件,这些控件可能略有不同。