如何避免使用asp:Multiview加载所有视图

时间:2010-03-16 20:32:41

标签: c# asp.net

我的页面上有一个多视图控件和一个用于创建选项卡控件的菜单

<asp:Menu ID="tabMenu" Orientation="Horizontal" StaticMenuItemStyle-CssClass="tab"
    StaticSelectedStyle-CssClass="selectedTab" CssClass="tabs" OnMenuItemClick="Menu1_MenuItemClick" runat="server">
</asp:Menu><asp:MultiView ID="multiViewTab" ActiveViewIndex="0" runat="server">
       <asp:View ID="viewDetails" runat="server">
            <uc:ViewDetails runat="server" ID="ucViewDetails" />
        </asp:View>
        <asp:View ID="viewJobs" runat="server">
            <uc:ViewJob ID="ucViewJob" runat="server" />
        </asp:View>
        <asp:View ID="viewJobList" runat="server">
            <uc:ViewJobList ID="ucViewJobList" runat="server" />
        </asp:View>           
    </asp:MultiView>

我将当前视图设置如下

     protected void Menu1_MenuItemClick(object sender, MenuEventArgs e)
    {
        int index = Int32.Parse(e.Item.Value);
        if (index != 0)
        {
            tabMenu.FindItem("0").Selected = false;
        }
        multiViewTab.ActiveViewIndex = index;

    }

效果很好......唯一的问题是每次我点击一个视图都会加载所有视图。而我只想加载一个活动的视图

你知道如何避免加载所有观点吗?

2 个答案:

答案 0 :(得分:2)

加载所有视图有什么问题?如果这是性能问题,您可以修改绑定(或其他)代码,以便只有在该视图可见时才会发生。

答案 1 :(得分:0)

默认情况下,它没有。您必须使用AJAX实现(使用更新面板或使用Web服务或JQuery方法或其他方式流式传输数据); MultiView对AJAX不好,或动态加载......

使用更新面板方法,这意味着您在选择视图时加载视图,方法是通过加载UC然后通过LoadControl方法。没有做到,但认为它会起作用......

HTH。