我有以下treeview
:
-node1 //ID=1
-node1.1 //ID=1/1
-node1.2
-node2
-node2.1
-node2.1.1 //ID = 2/1/1
-node2.2
-node2.3
-node3
-node3.1
-node3.1.1
-node3.1.2 //ID = 3/1/2
-node3.2
-node3.2.1
我使用的"ID"
正好是孩子的顺序,它已经在节点的Tag
中。例如,我想查找节点-node3.1.2
,我正在使用itemId = "3/1/2"
节点,我通过Tag
传递了该节点。
这是我的代码:
public TreeNode FromID(string itemId, TreeNode rootNode)
{
foreach (TreeNode node in rootNode.Nodes)
{
if (node.Tag != null)
{
var value = node.Tag as NodeTag;
string Node_ID = value.NodeID;
if (Node_ID.Equals(itemId)) return node;
TreeNode next = FromID(itemId, node);
if (next != null) return next;
}
}
return null;
}
当我运行代码时,它始终以null
作为输出。我很困惑为什么我有它?我可以问你的帮助吗?
答案 0 :(得分:0)
经过多次测试后,我找到了正确的答案。感谢您的评论,这对我帮助很大。因为它在IF不正确时失败了,所以我也添加了其他部分并发现它是正确的。
.....
else
{
TreeNode nodeChild = FindTn(node.Nodes, NodeID);
if (nodeChild != null) return nodeChild;
}