Domanda

Quando si preme il pulsante di cancellazione di una griglia, la riga scompare dalla griglia, ma quando griglia viene ricaricato che riappare fila. Ho provato un sacco di comandi senza risultati. Per favore aiuto! Grazie in anticipo.

Questa è la funzione che crea la griglia:

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

Ed ecco la funzione di rimozione:

        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();
        },
    }]
È stato utile?

Soluzione

Quando si ricarica la griglia utilizzando il metodo grid.store.reload () il negozio sta per ricaricare i dati dalla sorgente, quindi in questo caso sembra che si sta utilizzando i dati locali (una stringa array o JSON?) . Quindi sì, si elimina il record dal negozio, ma poi chiamando ricarica si sta reinserendo i record. La cosa migliore è di fare qualcosa in cui si eliminano i valori fuori dell'oggetto "mydata" e ricalibratura poi chiamata. Questo dovrebbe sbarazzarsi dei record per voi.

Altri suggerimenti

ho trovato la soluzione, come eliminare da mydata es: myData.splice (1,1);

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top