Я пытаюсь сделать GridPanel с локальными данными http://jsfiddle.net/8um4T/
Эта сетка имеет добавлять и удалять вsortable: true
в колонке, я буду удалять запись по идентификатору (но мой путь не в состоянии с большими данными)
Вот мои данныеУдалить строку в Сортируемый: истинно в сетке с локальными данными
var simpleData = [];
var store = new Ext.data.ArrayStore({
fields: ['id', 'name',],
data: simpleData
});
for (i = 0; i < 20; i++) {
simpleData.push({id:''+i+'', name: 'name'+i});
}
store.loadData(simpleData);
Мой TBAR с кнопкой добавления
tbar:[
{
text:'Add',
handler:function(){
simpleData.push({id:'x', name: 'name'});
store.loadData(simpleData);
}
}
]
Моя колонка Действие
{
header: '',
xtype: 'actioncolumn'
, width: 50
, items: [{ // Delete button
icon: 'http://whatisextjs.com/BAHO/icons/cancel.png',
tooltip: 'Delete'
, handler: function(grids, rowIndex, colindex) {
var record = grid.getStore().getAt(rowIndex);
//Delete item in array
// if data is large will don't working
Ext.each(simpleData, function (items, idx) {
if (items.id == record.data.id) {
simpleData.splice(idx, 1);
}
});
//Delete record in store
grid.store.removeAt(rowIndex);
}
}]
}
если MYDATA мало, то удалить кнопка будет работать. Мои данные в моем примере 20 записей и что не работают
моя идея удалить запись из store
после назначения для simpleData
. Но как это сделать или у меня есть еще одна проблема, чтобы исправить мою проблему.
//grid.store.removeAt(rowIndex);
// simpleData = grid.store.data; // my idea is (but how)
10 спасибо, но если я хочу удалить несколько строк таким образом, я не могу использовать return, потому что он удаляет только одну запись в simpleData? – freestyle
А как насчет моей идеи? Это возможно :) – freestyle
Ваше право Я бы в этом случае спросить, существует ли параметр items, прежде чем пытаться получить свойство id. Что-то вроде if (items && items.id === record.data.id) ... –