2010-12-15 50 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

尝试按需填充。

我在需要填充客户端的树视图需要这么长时间时使用填充。

相关问题