ITemplate,离开InstantiateIn(控件容器)的原因

时间:2011-03-15 12:53:25

标签: asp.net

我正在ITemplate控件中实现ListView接口。如果我在自定义类中为ItemTemplate认识到它,一切都会好的。我的意思是,当我使用

时,运行时将调用InstantiateIn
ListView.ItemTemplate = new CustomClass(); 

CustomClass :ITemplate 
{
    public void InstantiateIn(Control container)
    {
        HtmlTable table = CreateHeader();
        container.Controls.Add(table);
    }
    ...
}

但我想对ListView.LayoutTemplate做同样的事情。在这种情况下,运行时只调用InstantiateIn一次,但每次下次更新都会离开我的方法。它是什么原因?

2 个答案:

答案 0 :(得分:0)

布局模板说明根容器的外观如何,它不是每件物品。

答案 1 :(得分:0)

点击不同的按钮后,我必须更改LayoutTemplate。

我的LayoutTemplate有一个整个ListView的标题。我必须改变它,这取决于按钮。

此外,我还有两个自定义类,其中包含ITemplate的实现(一个用于ItemTemplate,另一个用于LayoutTemplate)。我将意识到以下行为:

1)。如果我点击Button1

ListView.ItemTemplate = new CustomItemClass1();
ListView.LayoutTemplate = new CustomLayuotClass1();

2)。如果我点击Button2

ListView.ItemTemplate = new CustomItemClass2();
ListView.LayoutTemplate = new CustomLayuotClass2();

但我无法再看到LayoutTemplate的标题,那么一次。