Pregunta

Al pulsar botón de eliminar de una rejilla, la fila desaparece de la parrilla, pero cuando se vuelve a cargar la rejilla que reaparece fila. He intentado un montón de comandos sin resultados. ¡Por favor ayuda! Gracias de antemano.

Esta es la función que crea la red:

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

Y aquí es la función de eliminación:

        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();
        },
    }]
¿Fue útil?

Solución

Al volver a cargar la red utilizando el método grid.store.reload () la tienda va a volver a cargar los datos de la fuente, por lo que en este caso parece que está utilizando datos locales (una cadena matriz o JSON?) . Así que sí, que va a eliminar el registro de la tienda, pero luego llamando recarga está reinsertar esos registros. Su mejor opción es hacer algo donde elimina los valores del objeto "misdatos" y recarga entonces llamada. Eso debería deshacerse de los registros para usted.

Otros consejos

I encontró la solución, la forma de eliminar de mydata para ex: myData.splice (1,1);

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top