Удаленные строки снова появляются после перезагрузки сетки - PullRequest
1 голос
/ 28 ноября 2010

Когда я нажимаю кнопку удаления сетки, строка исчезает из сетки, но когда сетка перезагружается, эта строка появляется снова.Я перепробовал много команд безрезультатно.Пожалуйста помоги!Заранее спасибо.

Это функция, которая создает сетку:

// 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();
        },
    }]

Ответы [ 2 ]

4 голосов
/ 29 ноября 2010

Когда вы перезагружаете сетку с помощью метода grid.store.reload (), хранилище будет перезагружать данные из источника, поэтому в этом случае похоже, что вы используете локальные данные (массив или строку json?),Так что да, вы удаляете запись из хранилища, но затем, вызывая reload, вы повторно вставляете эти записи.Лучше всего сделать что-то, где вы удаляете значения из объекта «mydata» и затем вызываете reload.Это должно избавить вас от записей.

0 голосов
/ 30 ноября 2010

Я нашел решение, как удалить из mydata для ex: myData.splice (1,1);

...