2

我正在TreeView根据数据库中的值以编程方式添加树节点。

我需要先将子节点添加到这些节点。找到它们的唯一方法是 by myReportsNode.ChildNodes[int index],但这些信息对我来说毫无用处,因为我需要通过它们的值或一些唯一的 id 来找到它们。

FindNode 不是一个好的选择,因为我不知道它们的确切位置,并且通过遍历树来查找每个节点是一种浪费。我想到了一个节点字典。

有任何想法吗?

4

2 回答 2

0

您需要使用树遍历。如果存在某种排序,您可以确保将它们加载到反映该排序的树中,并且您可以使用深度优先搜索并具有对数复杂度(每一点都与基于树的字典一样有效)。节点字典会浪费内存,因为您已经有了可以使用的树结构——也就是说,如果有某种排序。

如果你能给我们一些关于数据在树中的概念,我可以提供更多帮助。

于 2013-09-09T17:18:54.133 回答
0

使用在数据库表中使用三四列的策略。

1) nodeId
2) nodeText
3) nodeValue
4) parentId

单击节点时,通过 ajax 发送请求以查找此 id 是否有子节点,如果有,则将其子节点添加到其下方。否则没有找到孩子,不需要追加。

于 2013-09-09T17:16:02.793 回答