2013-03-23 74 views
0

我在我的aspx頁面中有一個TreeView控件。在asp.net中選擇TreeView中的TreeNode C#

每個TreeNode都有一個文本& Value屬性。

例如,

TreeView Tr_View = new TreeView(); 
        TreeNode TrNode=new TreeNode("ABC","1"); 
        Tr_View.Nodes.Add(TrNode); 
        TrNode = new TreeNode("DEF", "5"); 
        Tr_View.Nodes.Add(TrNode); 
        TrNode = new TreeNode("GHI", "9"); 
        Tr_View.Nodes.Add(TrNode); 
        TrNode = new TreeNode("JKL", "11"); 
        Tr_View.Nodes.Add(TrNode); 

的問題是,我要選擇它的值「9」

回答

2

使用下面的代碼的基礎上,3號節點找到與值「9」節點,並選擇它:

var node = Tr_View.FindNode("9"); 
node.Select(); 

請注意,這裏的「9」是通向節點的路徑。因此,如果您的節點位於非根 級別,則需要指定完整路徑,如「root.child.9」。

如果沒有一個完整的路徑,很可能找到基於節點值 一個節點將遍歷所有樹節點的最佳方式:

using System.Linq; 
using System.Collections.Generic; 
... 
IEnumerable<TreeNode> GetAllNodes() 
{ 
    Stack<TreeNode> roots = new Stack<TreeNode>(Tr_View.Nodes); 
    while(roots.Count > 0) 
    { 
    var node = roots.Pop(); 
    foreach (var child in node.ChildNodes) 
     roots.Push(child); 

    yield return node; 
    } 
} 
... 
var allNodesWithValue9 = GetAllNodes().Where(n => n.Value == "9"); 
+0

.SelectedNode是隻讀屬性。您的第一個解決方案不起作用 – PTansey 2015-04-01 20:35:45

+1

謝謝,我修復了代碼。 – Alexander 2015-04-02 15:55:50