2010-04-09 3 views
3

, когда мы хотим определить шаблон в наших пользовательских элементов управления мы объявляем поле, как это в нашем пользователь контролирует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

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

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

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

+0

Спасибо за ответ. Я понимаю, как применять iTemplate, но мой вопрос в том, есть ли хорошая документация/ресурс, доступный на ITemplate. Я смотрю что-то вроде «ITemplate Complete Reference» ... – Mahes

+0

Это довольно специфическое требование. Вероятно, лучше всего, если вы думаете о чем-то, что вам нужно достичь, тогда люди могут предложить способы его достижения. – Echilon

+0

Я думаю, что я хочу, чтобы я хотел полностью понять, что ITemplate может и не может сделать. – Mahes