比TreeView更好

时间:2010-10-18 13:18:05

标签: c# asp.net performance data-binding treeview

我将大量数据绑定到TreeView控件,因为数据是自然类别层次结构。问题是它有很多。我已经设法通过仅绑定出现在可见树中的那些节点来消除大量开销,但是这仍然在ViewState等中留下了很多。

有没有人有改进此类性能问题的方法或替代控制?

我正在考虑尝试继承TreeView控件并将其viewstate值转储到Sesssion并返回 - 但这是一个非常黑的,我现在没有时间,现在......

2 个答案:

答案 0 :(得分:2)

是的......您可以使用按需加载或延迟加载树视图项

即。

1-仅在窗口资源管理器中显示根级别节点。

2-当用户点击节点时,不仅仅是获取子节点并显示。

以这种方式,您将只看到实际用户请求的节点。

并且你可以给一个checbox,显示'显示整个树扩展'显然,它需要更多的时间来显示。

你也可以实现节点搜索功能,但请记住树是从图形中规定的,所以在找到像(BFS或DFS)这样的节点时使用正确的grpah算法

您也可以缓存节点的结果,但这只应在您的树本身不用于层次结构更新的情况下完成。

答案 1 :(得分:0)

除了在扩展时动态加载树视图的解决方案,尝试ViewStateCompression进行视图状态增强,使用Asp.net缓存进行输出缓存,或者通过使用生成键(如“tree_”)动态地将对象添加到缓存来缓存对象“&家长。缓存对象在会话之间共享,因此它甚至会更有帮助。 希望这会有所帮助。