2010-12-15 44 views
0

我使用XMLDataSource將XML數據綁定到treeview。它的工作方式,但是當節點和子節點的數量增加時,treenode擴展並顯示iframe需要較長時間的 中的內容。如何減少在asp.net中填充樹節點所花費的時間c#treeview?

<asp:TreeView ID="TreeView1" OnSelectedNodeChanged = "OnClick" runat="server" 
        ExpandDepth="0" ShowExpandCollapse="true" ForeColor="Red" Font-Underline = "false" 
        ondatabinding="TreeView1_DataBinding" CollapseImageUrl = "Resources/TocColapse.bmp" ExpandImageUrl = "Resources/TocParent.bmp" Font-Names="Arial" > 
        <SelectedNodeStyle Font-Underline="false" BackColor="White" ForeColor="#0483e0" /> 
        <NodeStyle Font-Size="11pt" ForeColor="white" HorizontalPadding="5px" 
         NodeSpacing="0px" VerticalPadding="0px" Font-Underline = "false" /> 
        <ParentNodeStyle ForeColor="#0483e0" Font-Underline = "false" /> 
        <LeafNodeStyle ForeColor="#0483e0" Font-Underline = "false" ImageUrl = "Resources/TocChild.bmp" /> 

       </asp:TreeView> 
       <asp:XmlDataSource ID="XmlDataSource1" runat="server" XPath="/*/*" EnableCaching = "false" ></asp:XmlDataSource> 

在樹狀的OnDataBinding事件中,我採取了以下代碼:

TreeNodeBinding[] TreeNode = new TreeNodeBinding[Count]; 
     for (int i = 0; i < Count; i++) 
     { 
      TreeNode[i] = new TreeNodeBinding(); 
      TreeNode[i].DataMember = TableOfContents[i].GetElementName(); 
      TreeNode[i].TextField = TableOfContents[i].GetFirstAttributeName(); 
      TreeNode[i].ValueField = TableOfContents[i].GetSecondAttributeName(); 
      // TreeNode[i].Target = "contentFrame"; 
      TreeView1.DataBindings.Add(TreeNode[i]); 
     } 

回答

2

當然是的。看看延遲加載。

+0

。有沒有可能使用XMLDatasource? – Mahantesh 2010-12-15 12:43:49

+0

http://www.codegod.de/WebAppCodeGod/TreeView-ASP-NET-Populate-OnDemand-AID409.aspx – Cromathaar 2010-12-15 13:16:40

+0

我閱讀本教程,因爲我修改了我的代碼..但它不會觸發OntreeItempopulate方法...你會根據懶惰綁定來修改我的代碼嗎? – Mahantesh 2010-12-15 13:22:28

0

有關設置EnableCaching爲 「true」 是什麼?

另外,你確定你需要顯示整個XML?您可以爲用戶提供一些過濾,從而減少顯示的xml的大小。

+0

如果我將EnableCaching設置爲「true」或false沒有任何區別。 – Mahantesh 2010-12-15 12:35:02

+0

是否可以使用PopulateOndemand標誌..但我沒有得到如何使用PopulateOndemand與XMLDatasource和樹視圖 – Mahantesh 2010-12-15 12:36:51

+0

我提供了單一的展開功能樹視圖。如果我使用OnItemPopulate和populateOndemand = true,則只會填充一個節點.. – Mahantesh 2010-12-15 12:48:31

0

嘗試按需填充。

我在需要填充客戶端的樹視圖需要這麼長時間時使用填充。

相關問題