【问题标题】:How to find the latest dropped node in ExtJs4 tree如何在 ExtJs4 树中找到最新删除的节点
【发布时间】:2011-12-22 16:50:28
【问题描述】:

我正在尝试实现以下内容:

我有 2 个启用拖放功能的树形面板。我可以将一些项目从第一棵树拖到第二棵树上。第一棵树是组件目录,第二棵树是产品构造器。在某些情况下,当我将节点拖放到构造函数时,我需要将子节点附加到已删除的节点。所以实际上当我删除时,我需要同时添加 2 个节点:被删除的节点和我在代码中添加的第二个节点。

我决定在删除事件处理程序中添加那个额外的节点,但问题是我不明白如何找到最新的删除节点。

有什么想法吗?

【问题讨论】:

    标签: drag-and-drop tree extjs4


    【解决方案1】:

    您可以使用Ext.tree.plugin.TreeViewDragDrop 类提供的drop 事件。此类基本上为树的视图(TreeView)提供拖放功能。因此,您需要在 TreeView 对象中添加 drop 事件,并在该事件触发时添加您的子节点或其他操作。

    要配置 TreeView,您可以使用树面板类提供的 viewConfig 参数。在头顶,你可能有 编写这样的代码:

    viewConfig: {
        plugins: {ptype: 'treeviewdragdrop'},
        listeners: {
            drop: function(node,data,model,dropPosition,opts) {
                // Add child nodes & other modification codes here...
            }   
        }
    }
    

    有关如何获取所需数据的更多详细信息,请参阅drop method in docs

    【讨论】:

    • 是的,我知道我应该使用这个插件,但问题是如何找到最新删除的节点。我通读了文档,但没有找到答案,您有什么建议吗?
    【解决方案2】:

    我设法使用itemadddrop 两个事件的组合来实现我所需要的

    这是一个示例,希望对某人有所帮助:

        onComponentAdd: function (records) {
            var record = records[0];
            this.lastAddedRecord = record;
        },
    
        onComponentDrop: function (element, data, dropNode) {
            var record = this.lastAddedRecord;
    
            var data = record.get('Data');
            if (!Ext.isEmpty(data)) {
                var scheme = data.scheme;
                Ext.each(scheme, function (item) {
                    if (item.type == 'componentlist') {
                        record.appendChild({
                            text: item.name,
                            loaded: true,
                            expanded: true,
                            allowDrop: true
                        });
                    }
                });
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多