请教如何隐藏TreeView的根节点

qq417349857 2011-01-22 01:38:15
请教如何隐藏TreeView的根节点
...全文
1713 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你#13楼的程序没有问题,它就是不添加根节点的程序。如果发现有个根节点,可能是你之前组织的数据时额外在根结上面又增加了一个根节点。
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 qq417349857 的回复:]

我这么写的 请教 怎么改
[/Quote]

没有仔细看。大致按照你的程序,第一个调用AddNode时使用的fatherid所对应的ID的数据就不会添加到树上,而第一层只会添加PID等于它的那些(多个)节点。

所以可能是你的数据有问题。
qq417349857 2011-01-22
  • 打赏
  • 举报
回复
谢谢大家了 你们说的这些真的令我看到了不少我自身认知的错误 呵呵 只可惜这个效果不知道要怎么搞才能跟BOSS交差了
  • 打赏
  • 举报
回复
可能你抄了一些网上的关于树的“范例”,也许这些范例都是弄出一个“根节点”大概概念。如果数据已经如此,就像#5楼所说的,“根节点数据”根本不添加到树上,只是用来作为产生树的第一层节点,那个AddChildren(null, myTreeView.Nodes)代码中代替null的部分使用。
wuyq11 2011-01-22
  • 打赏
  • 举报
回复
AddNote中数据添加到rootNode中为子节点
TreeView1.Nodes.Add(childNode);
qq417349857 2011-01-22
  • 打赏
  • 举报
回复
我这么写的 请教 怎么改
qq417349857 2011-01-22
  • 打赏
  • 举报
回复
private void AddNote(DataTable dt, TreeNode node, int fatherid)
{
DataRow[] drs = dt.Select("PID=" + fatherid.ToString());
foreach (DataRow dr in drs)
{
TreeNode childNode = new TreeNode();
string ChiText = "";

childNode.Text = dr["ClassName"].ToString() + ChiText.ToString();
childNode.Value = dr["id"].ToString();
childNode.NavigateUrl = "xxx.aspx?id=" + dr["id"].ToString();

node.ChildNodes.Add(childNode);

AddNote(dt, childNode, Convert.ToInt32(dr["id"]));
}
}
qq417349857 2011-01-22
  • 打赏
  • 举报
回复
TreeView1.Nodes.Clear();
TreeNode rootNode = new TreeNode();
rootNode.Text = "车量";
rootNode.Value = "0";
rootNode.NavigateUrl = "";
rootNode.ImageUrl = "images/root.jpg";

TreeView1.Nodes.Add(rootNode);
BLL.Car eu = new BLL.Car();
DataTable dt = null;
dt = eu.getCarlist(Sql).Table;

AddNote(dt, rootNode, 0);
TreeView1.ExpandAll(); //全部展开
  • 打赏
  • 举报
回复
一个企业根本不存在一个部门之下管辖所有部门,最高层的几个部门就直接隶属总经理了,而总经理不是一个部门。treeview也是这样,不存在根节点,树本身就是根节点。

从新认识treeview,要比勉强隐藏根节点,用得更久。
  • 打赏
  • 举报
回复
那就都出不来了 我循环给treeview赋值的 数据库用的无限极分类
[/Quote]

唉,真的有点累,看来只能给你抄代码才能明白。

像树上添加子节点,应该首先这样设计好功能接口(功能接口不好你就只能成功一半),例如我们要将部门组织机构添加入treeview:
void AddChildren(Department dept, TreeNodeCollection collection)
{
.....
}

这就是把所属于dept之下的所有部门添加到collection这个“口袋”里作为节点,递归调用这个方法则形成了树。而第一层,使用
AddChildren(null, myTreeView.Nodes);
来调用,dept为null时表示要出现第一层(多个)部门。根本不存在一个“根节点”。
qq417349857 2011-01-22
  • 打赏
  • 举报
回复
TreeView1.Nodes[0].ImageUrl 这个不是
qq417349857 2011-01-22
  • 打赏
  • 举报
回复
那有没有什么CSS样式能让第一个节点前面的图片自定义么?
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qq417349857 的回复:]

那请教一下 怎么隐藏第一个节点?
[/Quote]

隐藏了一个节点,其子节点也就根本不输出到客户端了。人家treeview就是这样设计的。
qq417349857 2011-01-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wuyq11 的回复:]
后台添加的,不添加第一层节点
[/Quote]
那就都出不来了 我循环给treeview赋值的 数据库用的无限极分类
wuyq11 2011-01-22
  • 打赏
  • 举报
回复
后台添加的,不添加第一层节点
qq417349857 2011-01-22
  • 打赏
  • 举报
回复
那请教一下 怎么隐藏第一个节点?
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fangxinggood 的回复:]

都加到TreeView.Nodes下,就没所谓的根节点。
[/Quote]

对的!

根本没有什么根节点。lz是对treeview误解了,只在第一层弄了一个节点,才自命名为根节点。
机器人 2011-01-22
  • 打赏
  • 举报
回复
都加到TreeView.Nodes下,就没所谓的根节点。
qq417349857 2011-01-22
  • 打赏
  • 举报
回复
我是从.cs文件里面一个一个添加节点的 没用什么sitemap什么的

62,074

社区成员

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

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

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

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