Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 光滑网格中的数据更新_Javascript_Jquery_Slickgrid - Fatal编程技术网

Javascript 光滑网格中的数据更新

Javascript 光滑网格中的数据更新,javascript,jquery,slickgrid,Javascript,Jquery,Slickgrid,我有一个光滑的网格,大约有100行。 它的数据在5秒钟内刷新,但每次更新时都会受到干扰,滚动被重置。 我曾尝试使用dataview和dataview.refresh(),但这次没有任何更改反映到网格 下面是我每次刷新时尝试的内容: mapMemoryTableDataView.beginUpdate(); mapMemoryTableDataView.setItems(data); mapMemoryTableDataView.endUpdate(); mapMemoryTableDataVie

我有一个光滑的网格,大约有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()

您一定要尝试
无效
方法

grid.invalidate();
根据个人经验,刷新网格只需使用网格上提供的
invalidate
方法即可。这将更新所有内容并保留滚动


“刷新”是指替换数据还是更新某些行?

我调用了以下命令

 mapMemoryTableDataView.beginUpdate();
    mapMemoryTableDataView.setItems(data);
    mapMemoryTableDataView.endUpdate();
    mapMemoryTableDataView.refresh();
    for (var i = 0; i < olist.length; i++) {
        mapMemoryTableGrid.updateRow(i)
    }
mapMemoryTableDataView.beginUpdate();
mapMemoryTableDataView.setItems(数据);
mapMemoryTableDataView.endUpdate();
mapMemoryTableDataView.refresh();
对于(变量i=0;i

无效和刷新无法解决我的问题。

我调用了以下代码:

        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();
mapMemoryDataView.beginUpdate();
setItems(pointsRows,“id”);
mapMemoryDataView.endUpdate();
syncGridSelection(pointsGrid,false);
对于(var i=0;i
对我有效的是:

    events[v_current_row_num].field_id = v_new_field_id;
    events_grid.updateRowCount();
    events_grid.render();
我使用了不同的网格和视图名称,但其概念是围绕调用updateRowCount和render函数展开的。

只需使用

gridItems.invalidate();
gridItems.render();
invalidate:mean nead验证您想要的行-在这种情况下:无参数row id=所有行