如何以编程方式向树形视图添加节点?

4
如何动态地向已有的树形视图中添加节点?
举个例子,假设现在有一个树形视图:
-Root
  -child1

以上是已经存在的树形视图。但我想在根节点中再添加一个节点(child2),输出结果如下:

-Root
  -child1
  -child2

WinForms,ASP.NET和JavaScript? - jgauffin
1
不,这并不明显。你在ASP.NET中有一个树控件。您可以在ASP.NET MVC中使用JavaScript / jQuery来修改树形视图。所以下次要更有礼貌,因为需要帮助的是你而不是我。 - jgauffin
4个回答

4

试试这个:

TreeNode rootNode = TreeView.Nodes.Cast<TreeNode>().ToList().Find(n => n.Text.Equals("Root"));
if (rootNode != null)
{
    rootNode.Nodes.Add("child2");
}

感谢您的回复,完美无缺。但是它会出现错误,提示“非静态字段、方法或属性 'System.Windows.Forms.TreeView.Nodes.Get' 需要对象引用”。 - kik
你是否用你的TreeView名称替换了TreeView? - Alex Mendez

3

谢谢,但是“Root”已经在initializecomponent()中生成了,我们如何在实际程序中使用它。 - kik
请注意,在Stackoverflow上,表达“感谢”的方式是给有用的答案点赞;如果TreeView控件是自动生成的,请使用treeView1.TopNode访问根节点,或者使用treeView1.Nodes访问节点集合。该控件带有Add()方法。 - user492238

1

控制像树形视图这样的控件有三种方法:

  1. 在标签中声明性地添加值 - 这里不是一个选项
  2. 以编程方式绑定所有行 - 您可以这样做,但这是过度设计
  3. 之后添加项目 TreeviewName.Nodes.Add()
  4. 添加到绑定数据集

如果您要让相同的树形视图 a) 显示给多个人或 b) 在 postbacks 后重新构建,则我实际上喜欢调整和缓存数据集并进行绑定。如果被重复使用,它比其他选项更简单且更轻量级。


1

我假设你是在提到asp.net的TreeView控件

MyTreeView.Nodes.Add(new TreeNode() { Text = "Child 2" });

我不是WinForms的专家,但从查看MSDN关于WinForms TreeView的文章来看,它也可以用于此。基本上,根节点是TreeView上的节点集合,您只需要向其添加一个节点即可。 - Ben Robinson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接