TreeView很慢吗?
为什么我用TreeView绑定一个300k左右的XML文件,页面打开需要30多秒,而展开每个节点都要用8~9秒。好像比以前纯javascript写得树慢得多。 问题点数:20、回复次数:8Top
1 楼mytail001(Never Give Up!)回复于 2006-03-17 13:54:19 得分 5
没见过这么慢的,有问题吧Top
2 楼xieyun9958(ぁ唯有魅影ぁ)回复于 2006-03-17 13:55:58 得分 0
我也没见过这么慢的!!!!一般都是0点几秒的。Top
3 楼tengteng_rock(没完没了)回复于 2006-03-17 13:58:11 得分 0
这是源文件的内容:
[tree.aspx]
------------------------------
<%@ Page language="c#" Codebehind="tree.aspx.cs" AutoEventWireup="false" Inherits="Test.tree" %>
<%@ Register TagPrefix="ie" Namespace="Microsoft.Web.UI.WebControls" Assembly="Microsoft.Web.UI.WebControls" %>
<html>
<body>
<form runat="server" ID="Form1">
<ie:TreeView id="tree1" runat="server" SystemImagesPath="/webctrl_client/1_0/treeimages" ></ie:TreeView>
</form>
</body>
</html>
[tree.aspx.cs]
---------------------------
using System;
using Microsoft.Web.UI.WebControls;
namespace Test
{
public class tree : System.Web.UI.Page
{
protected TreeView tree1 = new TreeView();
protected TreeNode rootNode = new TreeNode();
private void Page_Load(object sender, System.EventArgs e)
{
rootNode.Text = "North America";
rootNode.Expanded = true;
rootNode.ImageUrl = "/webctrl_client/1_0/images/root.gif";
rootNode.TreeNodeSrc = "state_city.xml";
tree1.Nodes.Add(rootNode);
tree1.Nodes[0].Databind();
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
Top
4 楼tengteng_rock(没完没了)回复于 2006-03-17 14:00:50 得分 0
state_city.xml 文件里面大约7000行,是个4层的树。生成的树慢得不能接收。Top
5 楼bookshop(我是比儿(http://www.crossgo.com))回复于 2006-03-17 14:42:28 得分 5
建议采用分层来加载该树,不一次性显示Top
6 楼bccu(风雨中人)回复于 2006-03-17 14:58:56 得分 5
用过,还有你说的那么慢吧。Top
7 楼huangkc(软贱&henchman)回复于 2006-03-17 15:15:08 得分 5
若是查询,则建议分层载
这控件就是这样,层越多,数据量大时,就慢得不行Top
8 楼tengteng_rock(没完没了)回复于 2006-03-19 00:26:09 得分 0
嗯,我将试试分层加载。原来这个XML文件是我动态生成的。还想知道一个问题,生成树,是通过绑定XML快呢,还是通过程序添加节点生成快。Top




