我有一个非常简单的用户控件,如下所示:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="wfWindow.ascx.cs" Inherits="webfanatix.co.za.wfWindow" %>
<div>Just a test...[x]</div>
这个代码背后:
[ParseChildren(false)]
[PersistChildren(true)]
public partial class wfWindow : System.Web.UI.UserControl
{
protected override void Render(HtmlTextWriter writer)
{
RenderChildren(writer);
}
}
其用法如下:
<wf:wfWindow runat="server">This content should go where [x] is.</wf:wfWindow>
我不是ASP.NET专业版,所以如何让内容准确呈现[x]出现在用户控件中的位置?
RenderChildren正在渲染我的内容,但它只会附加到UserControl输出的末尾。我需要它去坐在[x]标记点的地方。
提前致谢!
答案 0 :(得分:2)
将[X]更改为自己的控件,可以容纳其他控件,例如占位符或面板。
然后覆盖AddParsedSubObject()。默认实现只是将控件添加到usercontrol的Controls集合中 - 这意味着它们会被添加到结尾。覆盖它以将它们添加到占位符。
protected override void AddParsedSubObject(Object obj)
{
PanelWhereXIs.Add(obj);
}
答案 1 :(得分:1)
如果您希望实现决定放置内容的位置,请查看templated user controls。
否则,使用占位符控件并覆盖AddParsedSubObject方法