Я пытаюсь добавить шаблон к упрощенному составному элементу управления, содержащему Label и TextBox. Я хочу, чтобы мой след, чтобы выглядеть примерно так:Как я могу использовать шаблонный элемент управления ASP.NET?
<test:FormItem ID="fi" runat="server" Title="MyTitle" Text="My Text!">
<TestTemplate>
<i>
<%# Container.Title) %></i>
<br />
<%# Container.Text %>
</TestTemplate>
</test:FormItem>
У меня есть класс templateContainer, который имеет свойства для TextBox и Label.
public class TemplateContainer : WebControl, INamingContainer
{
public TextBox Text { get { return m_item.Text; } }
public Label Title { get { return m_item.Title; } }
private FormItem m_item;
public TemplateContainer(FormItem item)
{
m_item = item;
}
}
В главном классе FormItem у меня есть метод CreateControlHierarchy(), который вызывается из CreateChildControls():
protected virtual void CreateControlHierarchy()
{
m_itemTemplateContainer = new TemplateContainer(this);
TestTemplate.InstantiateIn(m_itemTemplateContainer);
Controls.Add(m_itemTemplateContainer);
}
То, что я хочу для шаблона чтобы сделать фактический контроль. Вместо этого он вызывает ToString() в элементе управления и отображает System.Web.UI.WebControls.Label и System.Web.UI.WebControls.TextBox. Есть ли способ заставить шаблон добавить элементы управления в свою коллекцию вместо того, чтобы просто называть ToString() на них?
Примечание: Я также попытался добавить текстовое поле и метку в коллекцию элементов управления контейнера, которая делает то же самое.
Я хочу создать составной элемент управления (управление элементами управления) и позволить пользователю добавлять разметку вокруг элементов управления. Примечание. Я не хочу создавать UserControl. У меня есть пользовательская логика для элементов управления в Composite Control, и я хочу, чтобы она использовалась в разных приложениях. – rmw
У вас должен быть возможность самостоятельно перемещать фактические элементы управления или просто размещать разметку до и после них? – codemonkeh