我正在TreeView
根据数据库中的值以编程方式添加树节点。
我需要先将子节点添加到这些节点。找到它们的唯一方法是 by myReportsNode.ChildNodes[int index]
,但这些信息对我来说毫无用处,因为我需要通过它们的值或一些唯一的 id 来找到它们。
FindNode 不是一个好的选择,因为我不知道它们的确切位置,并且通过遍历树来查找每个节点是一种浪费。我想到了一个节点字典。
有任何想法吗?
您需要使用树遍历。如果存在某种排序,您可以确保将它们加载到反映该排序的树中,并且您可以使用深度优先搜索并具有对数复杂度(每一点都与基于树的字典一样有效)。节点字典会浪费内存,因为您已经有了可以使用的树结构——也就是说,如果有某种排序。
如果你能给我们一些关于数据在树中的概念,我可以提供更多帮助。
使用在数据库表中使用三四列的策略。
1) nodeId
2) nodeText
3) nodeValue
4) parentId
单击节点时,通过 ajax 发送请求以查找此 id 是否有子节点,如果有,则将其子节点添加到其下方。否则没有找到孩子,不需要追加。