Удаленные ряды снова появляются после перезагрузки сетки

StackOverflow https://stackoverflow.com/questions/4298196

  •  29-09-2019
  •  | 
  •  

Вопрос

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

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

// 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();
        },
    }]
Это было полезно?

Решение

Когда вы перезагрузите сетку, используя метод GRID.Store.reload (), магазин собирается перезагрузить данные из источника, поэтому в этом случае он выглядит так, будто вы используете локальные данные (массив или json string?). Таким образом, да, вы удаляете запись из магазина, но затем, позвонив на перезагрузку, вы вкладываете эти записи. Ваша лучшая ставка - это сделать что-то, где вы удаляете значения из объекта «MyData», а затем вызовите перезагрузку. Это должно избавиться от записей для вас.

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top