4

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

public ITemplate MyTemplate { get; set; }

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

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

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

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

我不小心遇到了单实例模板,并被它的力量所震撼。

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

4

1 回答 1

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);
  }

这是你要找的吗?

于 2012-02-28T10:27:45.907 回答