如何在单击文本时将.NET TreeView节点设置为展开 - C#?

时间:2017-05-31 17:08:43

标签: c# asp.net treeview nodes

我在主页面中有一个TreeView,在单击+/-时切换展开和折叠之间的节点,并在展开当前节点时折叠所有其他节点。我试图让它在单击节点的文本时遵循相同的行为。单击节点文本时,它会折叠所有其他节点并转到节点链接到的页面,但它不会展开当前节点。我尝试过其他类似问题的大量解决方案,但没有一个有效。这是TreeView事件背后的C#代码。

protected void MainMenu_SelectedNodeChanged(object sender, EventArgs e)
{
    MainMenu.CollapseAll();
    TreeNode node = MainMenu.SelectedNode;
    node.Expand();
    while (node.Parent != null)
    {
        node = node.Parent;
        node.Expand();
    }
}

protected void MainMenu_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
{
    if (e.Node.Parent == null) return;
    string strNodeValue = e.Node.Value;
    foreach (TreeNode node in e.Node.Parent.ChildNodes)
    {
        if (node.Value != strNodeValue)
            node.CollapseAll();
    }
}


protected void MainMenu_TreeNodeDataBound(object sender, TreeNodeEventArgs e)
{
    e.Node.SelectAction = TreeNodeSelectAction.SelectExpand;
}

我感谢所有的想法和建议。

0 个答案:

没有答案