我复制这个例子,并定义我的模型和商店。 http://cdn.sencha.com/ext-4.1.1a-gpl/examples/dd/dnd_grid_to_grid.html
proxy:{
type:'ajax',
api:{
create: '/msDx2PlaylistAudio/create',
update: '/msDx2PlaylistAudio/create',
destroy:'/msDx2PlaylistAudio/delete'
},
url:'/msDx2Playlist/loadData',
reader:{
type:'json',
root:'data'
}
你可以看到我将设置api创建,更新和销毁动作。但是当我拖放我的网格行时,我的商店只会销毁并加载动作。我不明白为什么商店不执行任何创建...在另一个应用程序,我有一个网格自动同步工作正常。
答案 0 :(得分:0)
autoSync为false,将其设置为true。
var secondGridStore = Ext.create('Ext.data.Store',{ model:'DataObject' 的 AUTOSYNC:真强> });
答案 1 :(得分:0)
至少使用4.1.1,问题是您拖动的记录的phantom
设置为false。处理放置的代码如下所示,您将看到在将已删除的记录phantom
标志插入新商店之前没有任何内容可以设置为真。
这似乎是一个错误。
Ext.define('Ext.grid.ViewDropZone', {
extend: 'Ext.view.DropZone',
handleNodeDrop : function(data, record, position) {
var view = this.view,
store = view.getStore(),
index, records, i, len;
// If the copy flag is set, create a copy of the models
if (data.copy) {
records = data.records;
data.records = [];
for (i = 0, len = records.length; i < len; i++) {
data.records.push(records[i].copy());
}
} else {
/*
* Remove from the source store. We do this regardless of whether the store
* is the same bacsue the store currently doesn't handle moving records
* within the store. In the future it should be possible to do this.
* Here was pass the isMove parameter if we're moving to the same view.
*/
data.view.store.remove(data.records, data.view === view);
}
index = store.indexOf(record);
// 'after', or undefined (meaning a drop at index -1 on an empty View)...
if (position !== 'before') {
index++;
}
store.insert(index, data.records);
view.getSelectionModel().select(data.records);
}
});