2013-07-01 100 views
1

我有树形视图级别3的页面上有超过200个节点正在显示与复选框。该控件显示有多少条记录可用以及选择了哪些记录。用户可以取消选中现有的选择并根据需求检查更多节点。所以我必须加载整个树结构。
页面加载时间超过40秒。此选定节点将回发到数据库中存储。关于页面上的其他操作,还有许多其他回发事件。节点的按需加载在这里不起作用。我试图通过将一个不可见的按钮放在UpdatePanel中来模拟页面的异步加载。当页面加载完成时,我用JavaScript触发。但是仍然需要大量时间来呈现控件。Asp.NET页面加载速度非常慢,树视图控制

有没有更好的方法来处理这个问题?任何建议都是值得欢迎的。

+0

使用一个'秒表'实例来计算每个操作需要多长时间。我还建议使用SQL Profiler工具来查看你的数据库操作正在做什么。理想情况下,页面应该在100毫秒内(最好在50毫秒以下)生成,所以40秒表示出现了错误。 – Dai

+0

为了渲染树视图asp不会占用这么多时间。你在每个循环中调用一个存储过程或sqlQuery,同时遍历treeview。访问数据库将始终创建开销。发布代码以填充树视图 –

+0

整个树结构来自服务,在单个请求中花费少于一秒的时间。我通过循环来填充。 – Nps

回答

7

我设置了一个属性EnableClientScript =“false”,treeview开始加载非常快。唯一的问题是在展开或折叠树时回传。所以我将TreeView放置在更新面板中。现在它非常快。

+0

谢谢。那为我做了诡计! – dotNET

+0

这一行代码是值得黄金重量的!性能差异是惊人的。 – Walter

1

由.net为treeview控件生成的客户端脚本是导致性能较差的原因。 设置EnableClientScript = false将做诡计