Обновление данных в гладкой сетке - PullRequest
6 голосов
/ 19 марта 2012

У меня есть скользкая сетка, около 100 строк.Его данные обновляются в течение 5 секунд, но это мешает при каждом обновлении прокрутка сбрасывается.Я пытался использовать dataview и dataview.refresh (), но на этот раз без изменений отражается сетка.

Вот что я пробовал при каждом обновлении:

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

Ответы [ 5 ]

5 голосов
/ 21 марта 2012

Вы обязательно должны попробовать invalidate метод

grid.invalidate();

Исходя из личного опыта, все, что вам нужно сделать, чтобы обновить сетку, - это использовать метод invalidate, предоставленный в сетке. Это обновляет все, а также сохраняет прокрутку.

Под обновлением вы подразумеваете, что заменяете данные или обновляете определенные строки?

3 голосов
/ 24 июля 2014

просто используйте

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

invalidate: означает необходимость проверить, какую строку вы хотите - в этом случае: без параметра id строки = все строки

3 голосов
/ 26 марта 2012

Я назвал следующее

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

недействительным, и обновление не помогло решить мою проблему.

0 голосов
/ 06 февраля 2014

Что сработало для меня:

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

Я использую разные имена сетки и представления, но концепция вращалась вокруг вызова updateRowCount и функций визуализации.

0 голосов
/ 08 июля 2013

Я позвонил по следующему коду:

        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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...