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