2010-10-27 73 views
0

我有一个webforms控件,my:Repeater,它是一个asp:Repeater。我想打一个默认的模板,如:在Repeater上创建用户可覆盖的默认模板

<my:Repeater> 
    <HeaderTemplate> 
    My Default Header 
    </HeaderTemplate> 
    <ItemTemplate> 
    My data 
    </ItemTemplate> 
    <FooterTemplate> 
    My Default Footer 
    </FooterTemplate> 
</my:Repeater> 

我想这个模板是在某些文件不被用户写入的。如果用户只是做

<my:Repeater/> 

那么它应该使用我的默认模板。但是,用户可以忽略,<ItemTemplate><FooterTemplate>中的一个或多个。

这是可能的,我该如何实现它?

回答

0

每个模板都是一个IT模板;您可以通过实现ITemplate并可编程地向父容器添加控件来通过代码来编程创建模板。在OnInit方法中,您可以设置默认模板,并且如果用户提供ItemTemplate,理论上它应该覆盖您的模板。

+0

你能举个例子吗?我不认为我理解你。我在谈论ASPX模板,我的意思是生成HTML代码的位置。 – Johan 2010-10-27 13:07:04

+0

如果您希望用户不必担心设置的自定义控件的默认模板,则不能使用ASPX模板。他们必须是代码模板就是我想要解释的。 – 2010-10-28 12:52:37