2012-05-31 21 views
1

重述有像我如何通過樹視圖

1 
    1.1 
2 
    2.1 
    2.1.1 
      2.1.1.1 
      2.1.1.2 
3 
    3.1 
    3.1.1 

的TreeView Web控件,如果我有檢查[複選框] 2.1.1.2節點,我怎麼能得到這樣2,2.1,2.1.1和2.1的結果。 1.2
我試圖用這個http://msdn.microsoft.com/en-us/library/wwc698z7.aspx的例子,但它並沒有給我要求輸出。任何幫助或指示如何實現所需的輸出將不勝感激。

private void PrintRecursive(TreeNode treeNode) 
{ 
    // Print the node. 
    System.Diagnostics.Debug.WriteLine(treeNode.Text); 
    MessageBox.Show(treeNode.Text); 
    // Print each node recursively. 
    foreach (TreeNode tn in treeNode.ChildNodes) 
    { 
     PrintRecursive(tn); 
    } 
} 

// Call the procedure using the TreeView. 
private void CallRecursive(TreeView treeView) 
{ 
    // Print each node recursively. 
    TreeNodeCollection nodes = treeView.CheckedNodes; // Modified to get the Checked Nodes 
    foreach (TreeNode n in nodes) 
    { 
     PrintRecursive(n); 
    } 
} 
+1

什麼不工作這件事?你可以發佈輸出嗎? – Codeman

回答

0
var texts = new List<string> { treeNode.Text }; 

while (treeNode.Parent != null) 
{ 
    texts.Add(treeNode.Parent); 
    treeNode = treeNode.Parent; 
} 

//Reverse to get the required Layout of the Tree 
texts.Reverse(); 

var result = string.Join("\r\n", texts); 

或者,如果你想要的父節點自身做起,從第一級父到根的父母,包括自我:

var parents = new List<TreeNode> { treeNode }; 

while (treeNode.Parent != null) 
{ 
    parents.Add(treeNode.Parent); 
    treeNode = treeNode.Parent; 
} 

// Now parents contains the results. Do whatever you want with it. 
+0

非常感謝你用我的代碼擺弄一下我能夠得到必需的輸出。 – MMK