實現一個可擴展面板,實現了作INamingContainer類:
public class Container: Panel, INamingContainer
{
}
然後,你CustomPanel需要公開類型的容器的屬性和類型的ITemplate的另一個特性:在方法
public Container ContainerContent
{
get
{
EnsureChildControls();
return content;
}
}
[TemplateContainer(typeof(Container))]
[TemplateInstance(TemplateInstance.Single)]
public virtual ITemplate Content
{
get { return templateContent; }
set { templateContent = value; }
}
然後CreateChildControls()
,加入:
if (templateContent != null)
{
templateContent.InstantiateIn(content);
}
而你將會像這樣使用它:
<uc:customPanel title="My panel">
<Content>
<h1>Here we can add whatever HTML or ASP controls we would like.</h1>
<asp:TextBox></asp:TextBox>
</Content>
</uc:customPanel>
我認爲你不能做到這一點......但是喲可以做到這一點在烏爾用戶控制 – 2009-12-16 04:26:39
的的.ascx你可以指定一個位嗎?在我的ascx文件中,我有<%=title%>和<%=content%>,它可以正常工作,但將自定義HTML傳遞給content屬性是一件很痛苦的事情。 – ademers 2009-12-16 04:29:27
System.Web.UI.UserControl沒有屬性文本框 – 2009-12-16 04:30:58