ExtJS中的动态复制拖放

时间:2014-12-22 10:19:07

标签: javascript extjs drag-and-drop

我有一个带有treeviewdragdrop插件的树状面板。在我的控制器中,我需要让用户选择是否要删除节点或复制它。

Ext.define('App.view.admin.LevelTree', {
    extend: 'Ext.tree.Panel',
    xtype: 'leveltree',
    requires: ['Ext.tree.plugin.TreeViewDragDrop'],
    viewConfig: {
        preserveScrollOnRefresh: true,
        plugins: {
            ptype: 'treeviewdragdrop'
        }
    }

这是我的控制器代码:

me.getLevelTree().getView().on('drop', me.doChangeParent, me);

-

doChangeParent: function(node, data, overModel, dropPosition, eOpts) {...} 

如何根据用户选择在树状面板(控制器中)中设置 copy:true 属性?

1 个答案:

答案 0 :(得分:1)

您可以像这样使用插件和视图配置:

    viewConfig: {
                plugins: {
                    ptype: 'treeviewdragdrop'
                },
                listeners: {
                    beforedrop: function(node, data, overModel, dropPosition, dropHandlers) {
                        dropHandlers.wait = true;
                        Ext.MessageBox.confirm('Copy or move', 'If you want to copy node, press Yes', function(btn) {
                            data.copy = (btn === 'yes');
                            dropHandlers.processDrop();
                        });
                    }
                }
            },

实例:https://fiddle.sencha.com/#fiddle/fea