代码之家  ›  专栏  ›  技术社区  ›  James

如何以编程方式为模板化控件创建默认模板?

  •  0
  • James  · 技术社区  · 16 年前

    我正在创建一个自定义模板化复合控件。如果标记中没有指定“itemtemplate”,如何以编程方式创建默认模板?

    1 回复  |  直到 16 年前
        1
  •  0
  •   James    16 年前

    好吧,也许我应该在发问之前好好考虑一下。我创建了以下类:

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

    这是一种体面的方式吗?我真的只是想了想什么是自然的,所以如果你有任何反馈,我会很感激的。

    干杯, 詹姆斯

    推荐文章