Ich habe folgende treeview
:rekursive Funktion kann den Knoten finden und den Wert null zurück
-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
Die "ID"
, die ich verwende ist genau die Reihenfolge des Kindes und es ist bereits im Tag
des Knotens. Zum Beispiel möchte ich nach dem Knoten -node3.1.2
suchen und den Knoten mit itemId = "3/1/2"
verwenden, den ich über Tag
übergeben habe.
Hier ist mein Code:
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;
}
Wenn ich den Code leite dann hat es immer null
als Ausgabe. Ich bin verwirrt, warum ich es habe? Darf ich Ihre Hilfe fragen?
Haben Sie versucht, über den Code debuggen? Dann können Sie sehen, was gerade passiert. –
@tahatmat, yap, ich habe es getan. aber es konnte den Knoten nicht finden. –
Welchen Wert erhalten Sie, wenn Sie "int c = string.Compare (itemId, Node_ID)" verwenden? Wenn dies 0 nicht zurückgibt, sind Ihre Strings irgendwie anders und Sie müssen in die Werte von ihnen schauen und sehen warum. –