Extjs 4.1.1:网格到树拖放不起作用

Posted

技术标签:

【中文标题】Extjs 4.1.1:网格到树拖放不起作用【英文标题】:Extjs 4.1.1: Grid to Tree drag drop not working 【发布时间】:2014-06-20 09:19:57 【问题描述】:

我想实现这样的目标:

http://jsfiddle.net/mgill21/3HJXX/2/

但是每当我将一个节点从网格放入树列(作为叶节点)时,我都会收到诸如node.updateInfo() is undefined 和其他与节点相关的未定义方法之类的错误。

这是我的代码:

Ext.namespace('Ext.ux.window.ConfigureMobileApp');
Ext.require([ 'Ext.grid.*', 'Ext.data.*', 'Ext.dd.*' ]);

var firstGridStore = Ext.create('Ext.data.Store', 
storeId : 'formStore',
fields : [ 'name', 'type', 'itemId' ],
data : [ 
    name : "Michael Scott",
    itemId : 7,
    type : "Management"
, 
    name : "Dwight Schrute",
    itemId : 2,
    type : "Sales"
, 
    name : "Jim Halpert",
    itemId : 3,
    type : "Sales"
, 
    name : "Kevin Malone",
    itemId : 4,
    type : "Accounting"
, 
    name : "Angela Martin",
    itemId : 5,
    type : "Accounting"
 ]
);

// declare the source Grid
var firstGrid = Ext.create('Ext.grid.Panel', 
viewConfig : 
    plugins : 
        ptype : 'gridviewdragdrop',
        ddGroup : 'selDD'
    
,
store : Ext.data.StoreManager.lookup('formStore'),
columns : [ 
    text : "Name",
    flex : 1,
    sortable : true,
    dataIndex : 'name'
, 
    text : "Type",
    width : 70,
    sortable : true,
    dataIndex : 'type'
 ],
stripeRows : true,
title : 'First Grid',
margins : '0 2 0 0',
width : 200
);

 Ext.define('Resource', 
extend : 'Ext.data.Model',
fields : [ 
    name : "name",
    type : "string"
, 
    name : "type",
    type : "string"
 ]
);

var store1 = Ext.create('Ext.data.TreeStore', 
storeId : 'treeStore',
fields : [ 'name', 'type', 'itemId' ],
root : 
    expanded : true,
    children : [ 
        itemId : 171,
        type : "comedy",
        name : "Mr Bean",
        children : [ 
            leaf : true,
            itemId : 171,
            type : "actor",
            name : "Rowan Atkinson"
         ],
    , 
        itemId : 11,
        type : "fantasy",
        name : "Harry Potter",
        children : [ 
            itemId : 11,
            leaf : true,
            type : "actress",
            name : "Emma Watson",
         ]
    , 
        itemId : 173,
        type : "Action",
        name : "Fast and Furious",
        children : [ 
            itemId : 174,
            type : "actor",
            name : "Dwayne Johnson",
            children : [ 
                leaf : true,
                itemId : 175,
                type : "wrestler",
                name : "The Rock"
             ]
         ]
     ]

);

Ext.define('Ext.ux.window.TreeGrid', 
extend : 'Ext.tree.Panel',
title : 'Demo',
height : 300,
rootVisible : true,
singleExpand : true,
store : Ext.data.StoreManager.lookup('treeStore'),
columns : [ 
    xtype : 'treecolumn',
    text : 'Name',
    dataIndex : 'name',
    width : 200
, 
    text : 'Type',
    dataIndex : 'type'
 ],
initComponent : function() 
    this.callParent();
,
viewConfig : 
    plugins : 
        ptype : 'treeviewdragdrop',
        ddGroup : 'selDD'
    ,
    listeners : 
        beforedrop : function(node, data) 
            debugger;
            data.records[0].set('leaf', true);
            data.records[0].set('expanded', false);
            data.records[0].set('checked', true);
        ,
        drop : function(node, data, dropRec, dropPosition) 
            // firstGridStore.store.remove(data.records[0]);
        
    

);

var secondTree = Ext.create('Ext.ux.window.TreeGrid');

Ext.define('Ext.ux.window.ConfigureMobileApp', 
extend : 'Ext.window.Window',
title : 'Configure Mobile App',
height : 600,
width : 600,
layout : 'hbox',
modal : true,
closeAction : 'hide',
items : [ firstGrid, secondTree ]   
);

请帮忙。卡了很久。

【问题讨论】:

【参考方案1】:

为了帮助您解决此错误,我向您发送了两个链接。这些不是正确的解决方案,但肯定会为您提供指导。 First Link Second Link

【讨论】:

以上是关于Extjs 4.1.1:网格到树拖放不起作用的主要内容,如果未能解决你的问题,请参考以下文章

MailChimp 内容块拖放不起作用

Selenium Webdriver - 拖放不起作用

jQuery拖放不起作用

使用自定义类型标识符拖放不起作用

Laravel 5.4 - 拖放不起作用

拖放不起作用:未定义的“dropEffect”