如何在页面生成时自动将TreeView展开到某一个节点?

moonfeel 2009-08-13 07:25:41
数据库表是无限递归形式的:id,parentId,name
假设在页面生成时可以获得一个id值,要求TreeView自动展开到value为该id值的节点。
不知有没有高手可以给出一些解决方法?
...全文
117 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
happy664618843 2009-08-15
  • 打赏
  • 举报
回复
顶顶.............
白云任去留 2009-08-14
  • 打赏
  • 举报
回复
看看...
woying5510 2009-08-13
  • 打赏
  • 举报
回复
好像有点看不懂呢
fengjian_428 2009-08-13
  • 打赏
  • 举报
回复
用treeview的find方法 通过节点ID寻找节点 然后node.Expand(); 会自动打开它的父节点
Jinglecat 2009-08-13
  • 打赏
  • 举报
回复
正向递归找到目标节点,
然后回溯递归依次展开
wuyq11 2009-08-13
  • 打赏
  • 举报
回复
public void A(strin id,TreeNode Node)
{
foreach (TreeNode node in Node.ChildNodes)
{
if (node.ChildNodes.Count >0)
{
A(id,node);
}
else
{
if(node.Value.Equals(id))
{
node.Parent.Expanded = true;
mode.Expanded = true;
}
}
}
}
主要是遍历treeview,参考

liaoyukun111 2009-08-13
  • 打赏
  • 举报
回复
思路:从根节点开始,它的ID值不是,就展开它的下一级,然后判断展开的第一个节点,不是就找它的下级,一直遍历到没有,然后再找根节点子级的第二个.
当前节点展开:part.Expanded = true;
生成树都出来了,那递归就不是问题了

没有具体试过,可能上面的生成重新生成树
cpp2017 2009-08-13
  • 打赏
  • 举报
回复


    foreach (TreeNode node in this.TreeView1.Nodes)
{
TreeNode n = FindNodeByValue(node, "3");
if (n != null)
{
n.Expand();
while (n.Parent != null)
{
n.Parent.Expand();
n = n.Parent;
}

}
}
public TreeNode FindNodeByValue(TreeNode node,string value)
{
if (node.Value == value) return node;
foreach (TreeNode n in node.ChildNodes)
{
TreeNode n1 = FindNodeByValue(n, value) ;
if (n1 != null)
{
return n1;
}
}
return null;
}



  <asp:TreeView
ID="TreeView1" runat="server" ExpandDepth="1">
<Nodes>
<asp:TreeNode Text="A1" Value="1">
<asp:TreeNode Text="A2" Value="2">
<asp:TreeNode Text="A3" Value="3"></asp:TreeNode>
</asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="A4" Value="4"></asp:TreeNode>
</Nodes>
</asp:TreeView>

62,041

社区成员

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

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

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

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