【发布时间】:2013-02-06 19:45:53
【问题描述】:
我按照Recursive Hierarchical Joins in C# and LINQ 的帖子实现了递归连接扩展,以在我的应用程序中显示树视图数据。由于我有 15000 个树节点,客户端准备的 jQuery DynaTree 在有问题的浏览器 I.E 7&8 中需要大量时间(50 秒)
为了避免这种情况,我决定一开始只加载一个关卡,然后按需加载其他子级(延迟加载)。
但我看不到在递归连接中设置深度的效果。即使我指定,它也会准备所有节点。
public static List<DynaTreeNode> GenerateTreeByDepth(List<NodeDTO> nodeList,
int deepLevel)
{
StringBuilder hirTree = new StringBuilder();
List<DynaTreeNode> tree = new List<DynaTreeNode>();
IEnumerable<DynaTreeNode> nodes = nodeList.RecursiveJoin
(element => element.DataPointSK,element => element.DataPointSKParent,
(NodeDTO element, int index, int depth,IEnumerable<DynaTreeNode> childNodes) =>
new DynaTreeNode()
{
title = element.DataPoint,
key = element.DataPointSK.ToString(),
children = childNodes.ToList(),
select = element.selected,
expand = element.selected,
Depth = deepLevel
});
tree = nodes.ToList();
return tree;
}
我试过设置深度
深度 = deepLevel
但是没有用。可能是什么问题?我怎样才能做到这一点?
【问题讨论】: