2

我正在尝试 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 框架连接到演示者。Presenter 在 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 的选择事件仅在加载选项卡时触发。

也许覆盖渲染?还是 CreateChildControls?

4

0 回答 0