2015-09-07 50 views
1

我想將節點從樹面板放到面板上。我已經配置樹使用treeviewdragdrop插件,像這樣:Extjs拖放

Ext.define('APP.view.SampleTreeView', { 
    extend: 'Ext.tree.Panel', 
    alias: 'widget.sampleTreeView', 
    store: 'SampleTreeStore', 
    rootVisible: false, 
    renderTo: Ext.getBody(), 
    columns: [ 
     { xtype: 'treecolumn', dataIndex: 'text', flex: 1 } 
    ], 
    viewConfig: { 
     plugins: { 
      ptype: 'treeviewdragdrop', 
      dragGroup: 'editorDDGroup' 
     }, 
    } 
}); 

然後,我創建拖放區目標板上:

Ext.onReady(function() { 
    var DDTarget = new Ext.dd.DDTarget('tgtPanel', 'editorDDGroup', {}) 
}); 

tgtPanel定義:

Ext.define('APP.view.TargetPanel', { 
    extend: 'Ext.panel.Panel', 
    alias: 'widget.targetPanel', 
    id: 'tgtPanel', 
    renderTo: Ext.getBody(), 
    width: 400, 
    height: 200, 
    title: 'Target Panel' 
}); 

現在,樹節點可以被拖動,並且在目標面板上有一個綠色複選標記,表示允許拖放,但是當我釋放鼠標時,我得到了ext-all.js未捕獲類型錯誤:Cannot read property 'focus' of undefined

我在做什麼錯?

+0

,你可以提供的jsfiddle? –

回答

1

我意外地偶然發現瞭解決方案,而不是使用Ext.dd.DDtarget我使用了Ext.dd.DropTarget

前:

var DDTarget = new Ext.dd.DDTarget('tgtPanel', 'editorDDGroup', {}) 

後:

var DDTarget = new Ext.dd.DropTarget(me.getEl().dom, { 
    notifyDrop: function (dragsource, event, data) { 
        // 
    }, 
}); 
panelDropTarget.addToGroup('editorDDGroup');