我正在嘗試將模板添加到包含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>
我有了對TextBox和標籤性能的templateContainer類。
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類我有一個正在從的CreateChildControls(稱爲CreateControlHierarchy()方法):
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。我有複合控件中控件的自定義邏輯,我希望它在各種應用程序中使用。 – rmw 2009-04-09 13:36:43