我在主页面中有一个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;
}
我感谢所有的想法和建议。