2012-03-19 16 views
5

Tengo una slickgrid, con aproximadamente 100 filas. Sus datos se actualizan en 5 segundos, pero es inquietante en cada actualización que se restablece el desplazamiento. He intentado usar dataview y dataview.refresh() pero esta vez no hay cambios en la cuadrícula.Actualización de datos en Slick Grid

Aquí lo que he intentado en cada actualización:

mapMemoryTableDataView.beginUpdate(); 
mapMemoryTableDataView.setItems(data); 
mapMemoryTableDataView.endUpdate(); 
mapMemoryTableDataView.refresh(); 

if(mapMemoryTableGrid == null) 
    mapMemoryTableGrid = new Slick.Grid("#datatableMap1", mapMemoryTableDataView, columns, options); 

mapMemoryTableGrid.updateRow(1) 
mapMemoryTableGrid.render() 

Respuesta

3

me han llamado la siguiente

mapMemoryTableDataView.beginUpdate(); 
    mapMemoryTableDataView.setItems(data); 
    mapMemoryTableDataView.endUpdate(); 
    mapMemoryTableDataView.refresh(); 
    for (var i = 0; i < olist.length; i++) { 
     mapMemoryTableGrid.updateRow(i) 
    } 

invalidar y actualización no curar mi problema.

5

sin duda debe probar el invalidate método

grid.invalidate(); 

Por experiencia personal, todo lo que necesita hacer para actualizar la ventana es el uso de la invalidate método, provisto en la grilla. Esto actualiza todo y también conserva el desplazamiento.

Y al actualizar, ¿quiere decir que está reemplazando los datos o actualizando ciertas filas?

0

que he llamado el siguiente código:

 mapMemoryDataView.beginUpdate(); 
     mapMemoryDataView.setItems(pointsRows, "id"); 
     mapMemoryDataView.endUpdate(); 
     mapMemoryDataView.syncGridSelection(pointsGrid, false); 

     for (var i = 0; i < pointsRows.length; i++) { 
      mapMemoryTableGrid.updateRow(i); 
     } 

     mapMemoryTableGrid.invalidate(); 
     mapMemoryTableGrid.render(); 
0

lo que funcionó para mí fue:

events[v_current_row_num].field_id = v_new_field_id; 
    events_grid.updateRowCount(); 
    events_grid.render(); 

estoy usando diferentes nombres de la red y ver, pero el concepto girado en torno a llamar updateRowCount y hacer que las funciones .

3

sólo tiene que utilizar

gridItems.invalidate(); 
gridItems.render(); 

invalidate: significa Nead para validar la fila que desea - en este caso: ninguna fila parámetro id = all fila