【问题标题】:How to expand .NET TreeView node by clicking its text instead of +/-如何通过单击其文本而不是 +/- 来展开 .NET TreeView 节点
【发布时间】:2011-01-12 16:39:37
【问题描述】:

我一直在为我的网络应用导航使用硬编码的超链接,但从那以后该应用不断发展壮大,管理它变得非常痛苦。我决定用 TreeView 控件替换现有的控件,但是我想对其外观进行一些更改。

是否需要设置任何属性,以允许用户通过单击其文本而不是 +/- 来展开 TreeView 节点? 我已经将 ShowExpandColapse 设置为“false”。

我希望我的最终结果类似于 MSDN 站点左侧的 TreeView。

谁能指点我正确的方向?

【问题讨论】:

    标签: asp.net treeview


    【解决方案1】:

    将TreeNode.SelectAction 设置为展开或选择展开。

    【讨论】:

    • 我没有运气。当单击节点的 +/- 图标(而不是文本)时,是否会触发 TreeNode.SelectAction?也许 JavaScript 会是解决这个问题的更好方法。
    • @Dr.Greenthumb :你能提供一个例子如何编写一个javascript来解决这个问题。我的要求是默认只显示父节点,当用户点击父节点(文本本身)时,然后显示子节点。
    【解决方案2】:

    你可以使用xml数据源或者直接从db绑定到treview

    在 TreeView DataBound 事件中,我们可以编写如下的递归函数来获取每个节点并为其分配展开操作。

     protected void TreeView1_DataBound(object sender, EventArgs e)
    {
    
        foreach (TreeNode node in TreeView1.Nodes)
        {
            node.SelectAction = TreeNodeSelectAction.Expand;
            PrintNodesRecursive(node);
        }
    }
    
    
        public void PrintNodesRecursive(TreeNode oParentNode)
        {
    
    
          // Start recursion on all subnodes.
         foreach(TreeNode oSubNode in oParentNode.ChildNodes)
      {
        oSubNode.SelectAction = TreeNodeSelectAction.Expand;
      PrintNodesRecursive(oSubNode);
      }
     }
    

    【讨论】:

    • 在这种情况下,您可以使用 OnTreeNodeDataBound 而不是递归...... OnTreeNodeDataBound(object sender, TreeNodeEventArgs e) {e.Node.SelectAction = TreeNodeSelectAction.SelectExpand;}
    【解决方案3】:

    我认为您只需要在代码中执行此操作:处理 Click 事件,确定当前选择的树节点,并切换其 Expanded 属性(我认为这就是它的名称)。

    【讨论】:

    • 我在母版页代码隐藏中添加了以下代码: protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) { TreeView1.SelectedNode.SelectAction = TreeNodeSelectAction.Expand;但是节点仍然没有扩展。一定是我在这里想念的东西。
    • 另外,我想知道您将如何处理 NavigateURL 为“”的节点?它们不会在 TreeView 中显示为链接。
    • 抱歉,没有意识到这是一个 ASP.NET 问题。我不知道。
    【解决方案4】:

    你只能这样做! http://geekswithblogs.net/rajiv/archive/2006/03/16/72575.aspx

    尊敬的, 亚历山大

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-16
      • 1970-01-01
      • 1970-01-01
      • 2012-05-10
      • 2018-06-23
      • 1970-01-01
      • 2015-04-20
      相关资源
      最近更新 更多