ASP.Net ITemplate - способы декларирования - PullRequest
4 голосов
/ 10 апреля 2010

когда мы хотим определить шаблон в наших пользовательских элементах управления, мы объявляем поле, подобное этому, в наших пользовательских элементах управления

public ITemplate MyTemplate { get; set; }

, чтобы пользовательское содержимое шаблонов было представлено в MyTemplate, и вы можете использовать его.

и есть способы настроить шаблоны, например

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

в приведенном выше примере будут включены шаблоны для одного экземпляра (http://www.nikhilk.net/SingleInstanceTemplates.aspx).

Я случайно натолкнулся на шаблоны одного экземпляра и взорвался силой этого.

мой вопрос: что все возможно с помощью ITemplates ?? как мы определяем (используем) их (более конкретно, через аннотации). Есть ли хорошая документация для ITemplates? (пожалуйста, не указывайте msdn)

1 Ответ

2 голосов
/ 28 февраля 2012

Похоже, вы правильно декларируете шаблон. Чтобы заполнить содержимое собственным шаблоном, вы объявляете его в своей разметке. Например:

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

Это то, что вы искали?

...