ASP.NET Ajax Control Toolkit TabContainer の OnDemand 機能を試して、タブが読み込まれるまで高価な操作の実行を遅らせます。
私のページにはいくつかのタブがあり、各タブのコンテンツは単一のユーザー コントロールで構成されています
<ajaxToolkit:TabContainer ID="TabContainer1" ActiveTabIndex="0" OnDemand="True" runat="server">
<ajaxToolkit:TabPanel ID="TabPanel1" HeaderText="tab 1" runat="server" >
<ContentTemplate>
<UC:Tab1 runat="server" />
</ContentTemplate>
</ajaxToolkit:TabPanel>
<ajaxToolkit:TabPanel ID="TabPanel2" HeaderText="tab 2" runat="server">
<ContentTemplate>
<UC:Tab2 runat="server" />
</ContentTemplate>
</ajaxToolkit:TabPanel>
</ajaxToolkit:TabContainer>
これらの各ユーザー コントロールは、継承したカスタム MVP フレームワークを使用してプレゼンターに接続されます。プレゼンターは OnLoad で実行されます
// In user control
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
presenter.BuildView(); // this is what I want to delay until the tab is active
}
タブがアクティブであるかどうかに関係なく、OnLoad は常に呼び出されるため、アタッチするのに適切なイベントであることがわかります。タブがロードされたときにのみ発生する SqlDataSource の選択イベントで、ここで提供されている例と同じ効果を達成できるように、アタッチする適切なイベントは何ですか。
多分Renderをオーバーライドしますか?または CreateChildControls?