c# 实现treeview节点展开折叠

认真学编程 2010-07-19 11:02:59
请教了,我添加了一个treeview1控件,想通过点击节点前的加号展开节点,展开后点击减号来折叠节点,请教要怎么实现啊,谢谢啦!
...全文
1343 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
w3c5201314 2010-07-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zhangjian5206 的回复:]
应该怎么改啊,望指点
[/Quote]
你的Treeview分几级?若级数固定,你能不能不用递归?
若你要用递归
int dr1 = Convert.ToInt16(dr["NodeId"].ToString());
CreateTreeViewRecursive(node.ChildNodes, dataSource, dr1);
你这里该有判断吧,不可能一进来就调用递归塞,你这样就不是加子节点了,而全部都成了父节点。
认真学编程 2010-07-19
  • 打赏
  • 举报
回复
应该怎么改啊,望指点
w3c5201314 2010-07-19
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 zhangjian5206 的回复:]
private void CreateTreeViewRecursive(TreeNodeCollection nodes, DataTable dataSource, int parentId)
{
//
string fliter = String.Format("ParentId={0}", parentId);
// 查询子节点
DataRow[] drArr……
[/Quote]
你的递归创建子节点好像有问题
认真学编程 2010-07-19
  • 打赏
  • 举报
回复
private void CreateTreeViewRecursive(TreeNodeCollection nodes, DataTable dataSource, int parentId)
{
//
string fliter = String.Format("ParentId={0}", parentId);
// 查询子节点
DataRow[] drArr = dataSource.Select(fliter);

TreeNode node;
foreach (DataRow dr in drArr)
{
//
node = new TreeNode();
nodes.Add(node);
node.Text = (string)dr["NodeName"];
// 设置其他属性
//

// 递归创建子节点
int dr1 = Convert.ToInt16(dr["NodeId"].ToString());
CreateTreeViewRecursive(node.ChildNodes, dataSource, dr1);

// 移除已添加行,提高性能
dataSource.Rows.Remove(dr);
}
}
创建节点代码,请教是不是有问题啊?
Hidden518 2010-07-19
  • 打赏
  • 举报
回复
创建父节点,把子节点添到父节点中
bdmh 2010-07-19
  • 打赏
  • 举报
回复
那就是你创建节点有问题,没有创建子节点,查看代码吧,写的有问题
wwfgu00ing 2010-07-19
  • 打赏
  • 举报
回复
这个是Treeview自带的功能
你只需为Treeview绑定数据源就可以了。
认真学编程 2010-07-19
  • 打赏
  • 举报
回复
但是不能实现啊,难道和我的数据源有关系?我是递归查询数据,创建的节点,请教啦
lbser 2010-07-19
  • 打赏
  • 举报
回复
这个好像是自带的功能
zjx198934 2010-07-19
  • 打赏
  • 举报
回复
treeview绑定数据源后就会自带这个功能,如果你的树是广度优先的话treeview有一个事件是点击节点
bdmh 2010-07-19
  • 打赏
  • 举报
回复
真实的,treeview再没有这个功能,还叫什么treeview呀
w3c5201314 2010-07-19
  • 打赏
  • 举报
回复
这个是Treeview自带的功能
你只需为Treeview绑定数据源就可以了。
认真学编程 2010-07-19
  • 打赏
  • 举报
回复
总算找到原因了,不是数据源问题,是图层原因,谢谢大家啦
dazhabai 2010-07-19
  • 打赏
  • 举报
回复
treeview有个afterselect事件
认真学编程 2010-07-19
  • 打赏
  • 举报
回复
请教啊

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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