Я ищу, чтобы создать WebControl, который может содержать разметку внутри него, и делать собственное динамическое создание дочерних элементов управления. Проблема, с которой я сталкиваюсь, заключается в том, что я не могу (пока) визуализировать элементы управления, размещенные в разметке (см. Пример ниже) отдельно от дочерних элементов управления, которые я создаю.ASP.NET WebControl и рендеринг содержали детей
Я знаю, мне нужно создать класс с этими 2 флаги:
[ParseChildren(false)]
[PersistChildren(true)]
public class OuterControl : WebControl
{
...
}
И пример разметки будет выглядеть следующим образом:
<custom:OuterControl>
<asp:TextBox ...>
<custom:OuterControl>
Внутри RenderContents(), у меня есть некоторые элементы управления, которые мне нужно добавить в дерево управления, визуализировать, а затем визуализировать те, которые завернуты в разметку в определенной части. Например .:
protected override void RenderContents(HtmlTextWriter output)
{
EnsureChildControls();
[ Misc work, render my controls ]
[** Would like to render wrapped children here **]
[ Possibly other misc work ]
}
Как уже говорилось, я могу либо получить свой код, созданный управления дважды визуализации от вызова RenderChildren(), или завернутые управления, чтобы не оказывать на все путем удаления этой строки. Чёрт.
Мысли?