0
我在写一个ASP.NET自定义控件。如何将ASP.NET控件页面控件集合中的ASP.NET PlaceHolder控件移动到自定义控件的输出中?
在我的自定义控制代码,我觉得像这样的页面的占位符控制:
this.myPlaceholder = Page.FindControl("placeholder1") as PlaceHolder;
然后,我使占位符自定义控件的输出:
protected override void Render(HtmlTextWriter output)
{
if (this.myPlaceholder != null)
{
this.myPlaceholder.RenderControl(output);
}
}
然而,这会导致占位符被渲染到两个地方 - 自定义控件输出(好)和页面原始位置(不好)。
有没有什么办法可以从页面中删除这个占位符,所以它只在自定义控件中输出?
+1你几秒钟就打败了我。删除我的答案,因为你更好 – PHeiberg 2010-02-26 20:34:32
我从上面的Render方法中调用了Page.Controls.Remove(this.myPlaceholder)。我收到错误“收集已修改;枚举操作可能无法执行”。 – frankadelic 2010-02-26 20:39:50
正确...操作顺序在这里很重要。您必须在Render事件启动之前删除此页面。在PreRender中执行。 – Bryan 2010-02-26 20:50:46