【问题标题】:Select a TreeNode in TreeView in asp.net C#在asp.net C#中的TreeView中选择一个TreeNode
【发布时间】:2016-01-25 21:56:36
【问题描述】:

我的 aspx 页面中有一个 TreeView 控件。

每个 TreeNode 都有一个 Text & 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”选择第三个节点

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    使用以下代码查找值为“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");
    

    【讨论】:

    • .SelectedNode 是只读属性。您的第一个解决方案不起作用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-15
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    相关资源
    最近更新 更多