2013-07-24 5 views
6

Ich habe einen GridStore in Extjs, die Datensätze mit zwei Rasterspalten speichern kann. Ich habe ein Problem, wenn ein Datensatz in Grid existiert, wenn ich das Gitter lösche erfolgreich auf der Serverseite gelöscht wurde, aber das ist immer noch in Grid vorhanden.So löschen Sie das Raster in Extjs

Beispielcode:

xtype: 'grid', 
    store: 'SampleStore', 
    border: false, 
    width : 542, 
    ref: '../sampleGrid', 
    id: 'sampleGrid', 
    columns: [ 
     { 
     xtype: 'gridcolumn', 
     dataIndex: 'name', 
     header: 'Name', 
     sortable: true, 
    ............. 
    view: new Ext.grid.GridView({ 
    forceFit: true 
    }) 

Vielen Dank für Hilfe im Voraus.

+0

Ich würde nicht die forceFit Option in der Ansicht verwenden. Es wird empfohlen, Flex auf dem Gitter selbst zu verwenden. (nicht im Zusammenhang mit Ihrem Problem, aber es ist ein Vorschlag) – VDP

Antwort

9

Stellen Sie sicher, Sie verwenden:

grid.getStore().remove(record); //remove record from grid 
grid.getStore().sync(); //sync with server 

Wenn Sie alle Elemente entfernen möchten, tun:

grid.getStore().removeAll(); 
grid.getStore().sync(); 

Aber Vorsicht! Das wird alles löschen!

+0

Vergessen Sie nicht, das Raster zu aktualisieren, wenn der Speicher gelöscht wird. Wenn Sie das nicht tun, kann seltsames Verhalten passieren. grid.view.refresh() – monstergold

0

Das ist für mich gearbeitet:

Ext.ComponentQuery.query('#yourGrid')[0].getStore().removeAll(); 

Hoffe, es hilft.