tutorial examples español extjs

examples - Actualización de la tienda ExtJs Gridpanel



extjs gpl (10)

Estoy vinculando ExtJs Gridpanel desde la base de datos y agrego el botón "Eliminar" debajo de mi panel de red. Al utilizar el controlador de botón Eliminar, eliminé el registro seleccionado en el panel de red. Pero, después de eliminar, la cuadrícula no se actualiza (se elimina de la base de datos pero se muestra en la cuadrícula porque no se actualizó).

¿Cómo puedo actualizar la cuadrícula después de eliminar el controlador?


Actualizar tienda de cuadrícula

Ext.getCmp(''GridId'').getStore().reload();

Esto recargará la tienda de grillas y obtendrá nuevos datos.


Combinación de soluciones de Dasha y MMT:

Ext.getCmp(''yourGridId'').getView().ds.reload();


Es mejor usar store.remove que model.destroy. El controlador de clic para ese botón puede verse así:

destroy: function(button) { var grid = button.up(''grid''); var store = grid.getStore(); var selected = grid.getSelectionModel().getSelection(); if (selected && selected.length==1) { store.remove(selected); } }


Intente actualizar la vista:

Ext.getCmp(''yourGridId'').getView().refresh();


Otro enfoque en 3.4 (no sé si es apropiado Ext): puede tener un controlador de eliminación como este, suponiendo que cada fila tiene un botón ''eliminar''.

handler: function(grid, rowIndex, colIndex) { var rec = grid.getStore().getAt(rowIndex); var id = rec.get(''id''); // some DELETE/GET ajax callback here... // pass in ''id'' var or some key // inside success grid.getStore().removeAt(rowIndex); }


Tuve un problema similar. Todo lo que tenía que hacer era escribir store.load(); en el controlador de eliminación. No fue necesario escribir posteriormente grid.getView().refresh(); .

En lugar de todo esto, también puede escribir store.remove(record) en el controlador de eliminación; - esto asegura que el registro eliminado ya no se muestra en la cuadrícula.


prueba esta grid.getView().refresh();


recarga el ds para actualizar la grilla.

ds.reload();


grid.getStore().reload({ callback: function(){ grid.getView().refresh(); } });


grid.store = store; store.load({ params: { start: 0, limit: 20} }); grid.getView().refresh();