Extjs 在拖放网格ext js 4.2.1中复制记录
我一直在寻找解决办法。 我有两个启用了拖放插件的网格面板。Extjs 在拖放网格ext js 4.2.1中复制记录,extjs,drag-and-drop,grid,sencha-architect,treepanel,Extjs,Drag And Drop,Grid,Sencha Architect,Treepanel,我一直在寻找解决办法。 我有两个启用了拖放插件的网格面板。 我希望将拖到目标网格中的记录副本插入,但一旦将记录放到其他网格中,记录就会丢失在源网格中 我试图找到一些解决办法,在很多地方都发现了这一点 Ext.create('Ext.grid.Panel', { store: 'testStore', columns: [ {header: 'Name', dataIndex: 'name', flex: true} ], viewConfig: { copy: true,
我希望将拖到目标网格中的记录副本插入,但一旦将记录放到其他网格中,记录就会丢失在源网格中 我试图找到一些解决办法,在很多地方都发现了这一点
Ext.create('Ext.grid.Panel', {
store: 'testStore',
columns: [
{header: 'Name', dataIndex: 'name', flex: true}
],
viewConfig: {
copy: true,
plugins: {
ptype: 'gridviewdragdrop',
dragText: 'Drag and drop to reorganize'
}
},
height: 200,
width: 400,
renderTo: Ext.getBody()
}))
我使用的是ext js 4.2.1,文档中没有副本配置复制时没有配置选项。
有人能建议如何在ExtJS4.2.1中实现这一功能吗 感谢和问候
Sumanth K.P
您应该将
beforedop
事件处理程序添加到目标网格视图并处理drop
例如:
me.getView().on('beforedrop', function(node, data, overModel, dropPosition, dropHandlers) {
var record = data.records[0];
if (me.getStore().findBy(function(r) { return r.get('idx') == record.get('idx'); }) == -1) {
console.log('Process drop');
dropHandlers.processDrop();
} else {
console.log('Cancel drop');
dropHandlers.cancelDrop();
}
});
me.getView().on('beforedrop', function(node, data, overModel, dropPosition, dropHandlers) {
data.records[0] = data.records[0].copy('id' + idseed++);
console.log('Process drop');
dropHandlers.processDrop();
});
小提琴:
如果您想多次添加一条记录,可以复制data.records
数组中的记录
例如:
me.getView().on('beforedrop', function(node, data, overModel, dropPosition, dropHandlers) {
var record = data.records[0];
if (me.getStore().findBy(function(r) { return r.get('idx') == record.get('idx'); }) == -1) {
console.log('Process drop');
dropHandlers.processDrop();
} else {
console.log('Cancel drop');
dropHandlers.cancelDrop();
}
});
me.getView().on('beforedrop', function(node, data, overModel, dropPosition, dropHandlers) {
data.records[0] = data.records[0].copy('id' + idseed++);
console.log('Process drop');
dropHandlers.processDrop();
});
您是否可以提供其他代码来显示您迄今为止所做的尝试?或者更好的办法是复制问题的答案。它现在正在工作。我正在使用data.copy=true;在投递前事件中。