2010-03-16 29 views
2

我有我的頁面上的多視圖控件和一個菜單來創建一個標籤控制如何避免一個asp:多視角加載所有

<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; 

    } 

它工作得很好......唯一的問題是,每次我點擊一個視圖中的所有視圖loaded.while我想加載只有一個是活躍

你知道任何方式,以避免加載所有的vi EWS?

+0

我不知道如何用MultiView來做到這一點。您可以將每個選項卡設置爲單獨的頁面。你可以使用動態控件。 – Greg 2010-03-16 20:53:36

回答

2

加載所有視圖有什麼問題?如果是性能問題,您可以修改綁定(或其他)代碼,以便只有在該視圖可見時纔會發生。

0

默認情況下,它沒有。您必須改用AJAX實現(使用更新面板或使用Web服務或JQuery方法或其他方法來流式傳輸數據); MultiView不適用於AJAX或動態加載...

使用更新面板方法,這意味着您在選擇它時加載視圖,然後通過加載UC然後通過LoadControl方法加載視圖。沒有做到,但認爲它會工作...

HTH。