我的页面上有一个多视图控件和一个用于创建选项卡控件的菜单
<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;
}
效果很好......唯一的问题是每次我点击一个视图都会加载所有视图。而我只想加载一个活动的视图
你知道如何避免加载所有观点吗?
答案 0 :(得分:2)
加载所有视图有什么问题?如果这是性能问题,您可以修改绑定(或其他)代码,以便只有在该视图可见时才会发生。
答案 1 :(得分:0)
默认情况下,它没有。您必须使用AJAX实现(使用更新面板或使用Web服务或JQuery方法或其他方式流式传输数据); MultiView对AJAX不好,或动态加载......
使用更新面板方法,这意味着您在选择视图时加载视图,方法是通过加载UC然后通过LoadControl方法。没有做到,但认为它会起作用......
HTH。