2010-11-28 20 views
1

Wenn ich die Löschschaltfläche eines Rasters drücke, verschwindet die Zeile aus dem Raster, aber wenn Raster erneut geladen wird, wird diese Zeile wieder angezeigt. Ich habe viele Befehle ohne Ergebnisse ausprobiert. Bitte helfen Sie! Vielen Dank im Voraus.Gelöschte Zeilen werden nach Neuladen des Rasters wieder angezeigt

Dies ist die Funktion, die das Netz erzeugt:

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

Und hier ist die Funktion 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(); 
     }, 
    }] 

Antwort

4

Wenn Sie neu zu laden das Raster mit der grid.store.reload() -Methode der Speichern wird die Daten aus der Quelle neu laden, in diesem Fall sieht es so aus, als ob Sie lokale Daten verwenden (ein Array oder eine JSON-Zeichenfolge?). Ja, Sie löschen den Datensatz aus dem Speicher, aber durch Aufrufen von reload fügen Sie diese Datensätze erneut hinzu. Ihre beste Wette ist, etwas zu tun, wo Sie die Werte aus dem Objekt "mydata" löschen und dann Neuladen aufrufen. Das sollte die Aufzeichnungen für dich loswerden.

+0

aber sagen Sie mir, wie kann ich die Zeile aus Mydata oder Werte löschen? – cosy

0

Ich fand die Lösung, wie aus mydata für ex löschen: myData.splice (1,1);

Verwandte Themen