◆◆◆急,在线等待,关于客户端控制 TreeView,搞定立即给分◆◆◆

wanbo 2005-11-03 11:49:42
我想在客户端实现此功能:

展开(OnExpand)一个 Node 的同时,关毕(collapse)其它所有根目录下的 Node。

也就是说只能同时有一个根分支展开。
...全文
138 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanbo 2005-11-03
  • 打赏
  • 举报
回复
thanks,i try first.
fattycat 2005-11-03
  • 打赏
  • 举报
回复
第二步:为选择的结点添加联接,指向本页,以传递所选择的结点,并刷新页面

使用treenode实例.NavigateUrl属性


这样,在刷新之后,你最后一个打开的结点状态会被保存,而以前展开的结点都会被关闭
fattycat 2005-11-03
  • 打赏
  • 举报
回复
展开选定结点的代码如下:(较乱,直接复制粘贴即可)
注意修改成你的TreeView实例的名字

private void FindInTree(string strNodeName)
{
foreach(TreeNode tn in OrgTreeView.Nodes)
{
if (tn.Text != strNodeName)
{
FindInTree(tn,strNodeName);
}
else
{
ExpandTree(tn);
return;
}
}
}

private void FindInTree(TreeNode objTreeNode,string strNodeName)
{
foreach (TreeNode tn in objTreeNode.Nodes)
{
if (tn.Text != strNodeName)
{
FindInTree(tn,strNodeName);
}
else
{
ExpandTree(tn);
return;
}
}
}

private void ExpandTree(TreeNode objTreeNode)
{
string strIndex = "0";
objTreeNode.Expanded = true;
strIndex = objTreeNode.GetNodeIndex();
while (objTreeNode.Parent is TreeNode)
{
objTreeNode = ((TreeNode)objTreeNode.Parent);
objTreeNode.Expanded = true;
}
OrgTreeView.SelectedNodeIndex = strIndex;
}
fattycat 2005-11-03
  • 打赏
  • 举报
回复
分两步:有相关代码提供给你

1、保持TreeView的选择状态

2、刷新页面
jingfeng9888 2005-11-03
  • 打赏
  • 举报
回复
用循环判断所有节点,只要不等于当前节点就node.Expanded=false;你试试

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧