0
我正在創建自定義模板複合控件。如果在標記中沒有指定'ItemTemplate',如何以編程方式創建默認模板?如何以編程方式爲模板控件創建默認模板?
我正在創建自定義模板複合控件。如果在標記中沒有指定'ItemTemplate',如何以編程方式創建默認模板?如何以編程方式爲模板控件創建默認模板?
對,也許我應該在發佈我的問題之前玩過一下。我創建了以下類:
internal class ItemTemplateDefault : ITemplate
{
public void InstantiateIn(Control container)
{
Literal lit = new Literal();
CountrySelectorItemContainer cont = container as CountrySelectorItemContainer;
lit.Text = string.Format("<li>\n\t<a href=\"{0}\" title=\"{1}\">{1}</a>\n</li>", cont.ItemURL, cont.ItemText);
container.Controls.Add(lit);
}
}
所以當如果ItemTemplate中是空的,我實例化一個新ItemTemplateDefault並將其指定爲ItemTemplate中。見下文。
if (this.ItemTemplate == null)
this.ItemTemplate = new ItemTemplateDefault();
CountrySelectorItemContainer container = new CountrySelectorItemContainer();
container.ItemText = "My Country";
container.ItemURL = "http://myurl.com";
this.ItemTemplate.InstantiateIn(container);
Controls.Add(container);
這是一個體面的做法嗎?我真的只是想到了什麼似乎很自然,所以如果您有任何反饋,我將不勝感激。
乾杯, James