在拖放网格 ext-js 4.2.1 中复制记录
Copy records in Drag and Drop Grid ext-js 4.2.1
我一直在寻找解决方案。
我有两个启用了拖放插件的网格面板。
我想将被拖到目标网格的记录的副本插入到中,但是一旦记录被放到其他网格中,记录就会在源网格中丢失。
我试图在很多地方找到一些解决方案。
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,文档中没有 copy 配置
没有配置选项,因为 copy 存在。
谁能建议如何在 ext-js 4.2.1 中实现此功能。
感谢和问候
苏曼斯 K.P
您应该将 beforedrop
事件处理程序添加到目标网格视图并处理拖放。
示例:
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();
}
});
Fiddle: http://jsfiddle.net/bgvxcz3k/1/
如果想多次添加一条记录,可以复制data.records
数组中的记录。
示例:
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();
});
我一直在寻找解决方案。
我有两个启用了拖放插件的网格面板。
我想将被拖到目标网格的记录的副本插入到中,但是一旦记录被放到其他网格中,记录就会在源网格中丢失。
我试图在很多地方找到一些解决方案。
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,文档中没有 copy 配置
没有配置选项,因为 copy 存在。
谁能建议如何在 ext-js 4.2.1 中实现此功能。
感谢和问候
苏曼斯 K.P
您应该将 beforedrop
事件处理程序添加到目标网格视图并处理拖放。
示例:
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();
}
});
Fiddle: http://jsfiddle.net/bgvxcz3k/1/
如果想多次添加一条记录,可以复制data.records
数组中的记录。
示例:
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();
});