Extjs treepanel:如何在叶节点上放置节点

ozxc1zmp  于 2022-09-26  发布在  其他
关注(0)|答案(3)|浏览(201)

有人知道如何在树的叶子节点上进行拖放吗?
我的场景与此完全相同:http://dev.sencha.com/deploy/dev/examples/tree/reorder.html,但我还需要将项附加到叶节点。
谢谢

xhv8bpkk

xhv8bpkk1#

我假设OP想知道一个叶节点上是否可以放置一个项,从而成为非叶节点(该项成为其子项)。我还发现示例不支持这一点。。。
更新:Sencha论坛上的以下帖子直接解决了这个问题:
http://www.sencha.com/forum/showthread.php?17522-2.0rc1-2.0.1-TreePanel-Dropping-onto-a-Leaf-Node/page2
我应用了这个建议(将没有子节点的节点标记为“已扩展”和“已加载”),我发现Ext将使用“叶”图标,但仍然允许您在上面放置内容。当用户将一个项目放到这样的节点上时,图标会变为一个文件夹。“leaf”配置选项将阻止节点将项目放置到其上。

2exbekwf

2exbekwf2#

不要触摸“叶”、“加载”或“扩展”属性-->这将导致问题…
相反,您可以将虚拟节点添加到children属性中,使其不可见,并使expandable=false(去掉加号),这样您就可以向其添加节点,如下所示:

leafNode : { 
    expandable : false,
    children :[
       {visible : false}
    ]
}

然后在drop事件中发生drop后,将expandable重置为:
模型数据上方。expandable=真;

643ylb08

643ylb083#

我的解决方案是,如果没有子级,则返回children参数中的空数组。
下面是Ruby on rails后端示例:

{
        id: record.id,
        name: record.name,
        children: record.has_children? ? nil : []
      }

如果没有孩子,记录附近不会显示+符号

相关问题