私はクラスMyListViewを持ち、ASP.NET ListViewから継承しています。プログラマがEmptyDataTemplateをaspxコードで指定しなかった場合、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
はMyEmptyDataTemplateサーバーコントロールまたはユーザーコントロールですか? –
MyListViewのプライベート内部クラスとして宣言しました。 – Mikee