Extjs Treepanel - 如何删除树的根

Posted

技术标签:

【中文标题】Extjs Treepanel - 如何删除树的根【英文标题】:Extjs Treepanel - How to delete root of a tree 【发布时间】:2013-07-10 07:15:44 【问题描述】:

我有一个带有本地数据的树形面板

 root: 
            text: 'root',
            children: [
                 text: "child"
                  leaf: true
                ]
 ....

首先:我想删除树的根。我尝试下面的代码,但不适用于 root。但是,这适用于另一个节点 (node.remove(true))

tree.getRootNode().remove(true);

第二:我想删除所有树(我认为这就像删除根?) 我该怎么做谢谢:)

【问题讨论】:

【参考方案1】:

陈述于Ext doc,Ext.dataNodeInterface.remove

从它的父节点中移除这个节点

根节点没有父节点,所以remove 不起作用。但是,要从树形面板中删除整棵树,您可以尝试:

treepanel.setRootNode(null);

我创建了一个plunk 来展示一些您可能感兴趣的示例。

【讨论】:

我使用 setRootNode(null);但它不适用于 extjs 4.1 :( @freestyle 我更新了我的 plunk plnkr.co/edit/ceV5caP50nTi0OYV1YCm 以使用 4.1.0,它按预期工作。你能创建一个 plunk 或 jsfiddle 来显示什么不适合你吗? 在你的小提琴中,我单击按钮,整个树被删除,但树面板添加了一个虚拟根节点。这是你的问题吗?您可以将rootVisible 设置为 false 以隐藏根节点。或者,您能说明您从树形面板中删除树的目的吗?也许有更好的方法来实现最终结果。 我尝试使用树形面板,但我遇到了上述问题。我认为解决我将 rootVisible 设置为 false 的问题是正确的。谢谢你:)

以上是关于Extjs Treepanel - 如何删除树的根的主要内容,如果未能解决你的问题,请参考以下文章

在 ExtJs 4.1 TreePanel 中隐藏一个节点

如何在extjs 4.1中的treePanel中移动节点标签的复选框结尾

ExtJs基础知识总结:DomIFrame和TreePanel

Extjs 3.4 Ext.tree.TreePanel 与 TreeLoader

Extjs 4 treepanel 重新加载和展开

在 ExtJs 4.0 TreePanel 中更改文件夹和叶子节点的顺序