ASP.Net ITemplate - 声明的方式

时间:2010-04-09 20:18:09

标签: asp.net itemplate

当我们想在用户控件中定义模板时,我们在用户控件中声明了这样的字段

public ITemplate MyTemplate { get; set; }

这样用户定义的模板内容将在MyTemplate中表示,您可以使用它。

并且有一些方法可以自定义模板,例如

[TemplateInstanceAttribute(TemplateInstance.Single)]
public ITemplate MyTemplate { get; set; }

上面的示例将启用定义单个实例模板(http://www.nikhilk.net/SingleInstanceTemplates.aspx)。

我偶然遇到了单个实例模板,并被它的力量所震撼。

我的问题是ITemplates的所有可能性是什么?我们如何定义(使用)它们(更具体地说是通过注释)。有没有可用于ITemplates的好文档? (请不要指向msdn)

1 个答案:

答案 0 :(得分:2)

看起来您确实正确地声明了模板。要使用您自己的模板实际填充内容,请在标记中声明它。例如:

<MyControl runat="server" ...>
  <MyTemplate>
   ... any standard ASP.NET controls in here
   <asp:Label runat="server" ID="lblName"/>
  </MyTemplate>
</MyControl>

  public void InstantiateIn(Control container) {
      var lblName = container.FindControl("lblName") as Label;
      lblName.Text = "Blah";// set from your data layer or otherwise
      Button b = new Button();
      b.ID = "B";
      container.Controls.Add(b);
  }

这是你在找什么?