在TreeView中查找特定的树节点

时间:2013-09-09 16:57:57

标签: c# asp.net

我正在根据来自DB的值以编程方式将树节点添加到TreeView

我之前需要将子节点添加到这些节点。找到它们的唯一方法是myReportsNode.ChildNodes[int index],但这些信息对我来说没用,因为我需要通过它们的价值或一些唯一的ID找到它们。

FindNode不是一个好选择,因为我不知道它们到底在哪里,并且通过树中的itarating寻找每个节点是一种浪费。我虽然是节点字典。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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

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