2
我有一個類MyListView,它從ASP.NET ListView繼承。我想實現一個默認行爲 - 如果程序員沒有在aspx代碼中指定EmptyDataTemplate,MyListView將使用預定義的默認模板(MyEmptyDataTemplate類)。ASP.NET ListView - 如何以編程方式設置EmptyDataTemplate?
我曾嘗試是這樣的:
public class MyListView : ListView
{
protected override void CreateChildControls()
{
if (EmptyDataTemplate == null)
EmptyItemTemplate = new MyEmptyDataTemplate();
base.CreateChildControls();
}
}
的MyEmptyDataTemplate實現了Itemplate接口。問題是,MyEmptyDataTemplate的InstantiateIn()方法永遠不會被調用,並且在數據源中沒有記錄的情況下,我的默認模板不會出現。顯然我錯了解ListView組件的生命週期和模板應該設置在別的地方。有人可以幫忙嗎?
對不起,這是行不通的,InstantiateIn()沒有被調用。 – Mikee 2012-03-01 11:49:15
是MyEmptyDataTemplate是服務器控件還是用戶控件? – 2012-03-01 12:01:19
我將它聲明爲MyListView的私有內部類。 – Mikee 2012-03-01 12:09:32