Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何以编程方式为模板化控件创建默认模板?_C#_Asp.net_Web Controls - Fatal编程技术网

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

C# 如何以编程方式为模板化控件创建默认模板?,c#,asp.net,web-controls,C#,Asp.net,Web Controls,我正在创建一个自定义模板复合控件。如果在标记中没有指定“ItemTemplate”,我如何以编程方式创建默认模板?是的,也许我应该在发布问题之前先处理一下。我创建了以下类: internal class ItemTemplateDefault : ITemplate { public void InstantiateIn(Control container) { Literal lit = new Literal(); CountrySelect

我正在创建一个自定义模板复合控件。如果在标记中没有指定“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);
    }
}
这是一种体面的方式吗?我真的只是想了些看似自然的东西,所以如果你有任何反馈,我将不胜感激

干杯, 詹姆斯

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