2012-03-19 27 views
5

Yaklaşık 100 satırlık bir slickgrid'im var. Verileri 5 saniye içinde yenilenir, ancak her güncellemede rahatsızlık duyulursa kaydırma sıfırlanır. Dataview ve dataview.refresh() işlevlerini kullanmaya çalıştım ancak bu sefer hiçbir değişiklik yansıtmıyor. Ben her yenileme yargılanacak neyi İşteSlick Grid'deki Veri Güncellemesi

:

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() 

cevap

3

benim sorunu tedavi etmedi aşağıdaki

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

invalidate ve yenileme çağrıda bulundular. benim için çalıştı Ne

 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(); 
5

Kesinlikle kişisel deneyim invalidate yöntemi

grid.invalidate(); 

denemelisiniz, sen ızgara yenilemek için yapmanız gereken kullanmaktır Izgarada sağlanan invalidate yöntemi. Bu her şeyi günceller ve kaydırmayı da korur.

Ve yenilemekle, verileri mi değiştiriyorsunuz, yoksa belirli satırları mı güncelliyorsunuz?

0

Aşağıdaki kod çağrıda

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

farklı ızgara ve görünümü isimleri kullanıyorum ama konsept updateRowCount ve işlemek işlevlerini çağıran etrafında dönüyordu .

0

oldu:

3

sadece

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

invalidate kullanın: Eğer istediğiniz satır doğrulamak için Nead demek - bu durumda: hayır Parametre satırı id = tüm sıranın