Я хочу создать элемент управления как Panel
.
Я хочу, чтобы мой элемент управления принимал некоторые элементы управления как дочерние элементы без ввода имени шаблона, как Panel
, как показано здесь:
<asp:Panel runat="server">
My content
<div>Content</div>
</asp:Panel>
У меня есть элементы управления с содержимым внутри, не говоря, что такое ITemplate
.
Я в основном хочу преобразовать это
<my:MyControl runat="server">
<ContentTemplate>
My content
<div>Content</div>
</ContentTemplate>
</my:MyControl>
В это
<my:MyControl runat="server">
My content
<div>Content</div>
</my:MyControl>
Вот что у меня есть:
public class MyControl : CompositeControl
{
[TemplateInstance(TemplateInstance.Single)]
public ITemplate Content { get; set; }
protected override void CreateChildControls()
{
base.CreateChildControls();
Content.InstantiateIn(this);
}
}
Вышеуказанное работает с тегами <Content></Content>
внутри элемента управления, но без него не работает. А атрибут вообще ничего не делает (наверное). Чего не хватает?
Как мне этого добиться? Есть намеки? Почему Panel
поддерживает это?