当我按下网格的删除按钮时,该行会从网格中消失,但是当网格重新加载时,该行会重新出现。我尝试了很多没有结果的命令。请帮忙! 提前谢谢。
这是创建网格的功能:
// create the data store
var store = new Ext.data.Store({
proxy: new Ext.ux.data.PagingMemoryProxy(myData),
remoteSort:true,
sortInfo: {field:'del', direction:'DESC'},
reader: new Ext.data.ArrayReader({
fields: [
{name: 'id'},
{name: 'name'},
{name: 'category'},
{name: 'price', type: 'float'},
{name: 'active', type: 'int'},
{name: 'actions', type:'text'}
]
})
});
这是删除功能:
buttons: [{
text: 'Add',
iconCls: 'silk-add',
handler: this.onAdd
}, '-', {
text: 'Delete',
iconCls: 'silk-delete',
handler: function(sm, rowIdx,r){
var s = grid.getSelectionModel().getSelections();
for(var i = 0, r; r = s[i]; i++){
// store.remove(r);
var index = store.data.indexOf(r);
if(index > -1){
r.join(null);
store.data.removeAt(index);
}
store.modified.remove(r);
if(index > -1){
store.fireEvent('remove', store, r, index);
}
store.destroyRecord(store, r, index);
}
store.reload();
},
}]
答案 0 :(得分:4)
当您使用grid.store.reload()方法重新加载网格时,存储将从源重新加载数据,因此在这种情况下,它看起来像您正在使用本地数据(数组或json字符串?) 。所以,是的,您正在从商店中删除记录,但是通过调用重新加载,您将重新插入这些记录。你最好的办法是做一些删除对象“mydata”中的值然后调用reload的东西。这应该摆脱你的记录。
答案 1 :(得分:0)
我找到了解决方案,如何从mydata中删除ex:myData.splice(1,1);