Question

Quand j'appuyez sur le bouton de suppression d'une grille, la ligne disparaît de la grille mais quand la grille est rechargé cette ligne apparaît à nouveau. J'ai essayé beaucoup de commandes sans résultats. Aide s'il vous plaît! Merci à l'avance.

Ceci est la fonction qui crée la grille:

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

Et voici la fonction remove:

        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();
        },
    }]
Était-ce utile?

La solution

Lorsque vous rechargez la grille en utilisant la méthode grid.store.reload () le magasin va recharger les données de la source, donc dans ce cas, il semble que vous utilisez des données locales (une chaîne de tableau ou JSON?) . Alors oui, vous supprimez le dossier du magasin, mais en appelant reload vous réinsérez ces enregistrements. Votre meilleur pari est de faire quelque chose où vous supprimez les valeurs de l'objet « mydata » puis reload appel. Cela devrait se débarrasser des dossiers pour vous.

Autres conseils

Je trouve la solution, comment supprimer mydata par ex: myData.splice (1,1);

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top