このC# および LINQ での再帰的階層結合の投稿に従って、アプリケーションでツリー ビュー データを表示する再帰的結合拡張機能を実装しました。私は15000個のツリーノードを持っているので、バグのあるブラウザIE 7&8では、クライアント側の準備でjQuery DynaTreeに多くの時間がかかります(50秒)
これを回避するために、最初は 1 つのレベルのみをロードし、次に必要に応じて他の子をロードすることにしました (遅延ロード)。
しかし、再帰結合で深さを設定する効果は見られませんでした。私が指定しても、すべてのノードを準備します。
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;
}
奥行きを設定してみた
深さ = 深いレベル
しかし、役に立たない。問題は何ですか?これどうやってするの?