Slick Grid中首次数据加载与过滤后的数据加载之间的区别

问题描述 投票:0回答:1

我正在使用Slick Grid渲染数据。相同的数据显示在地图上。我正在使用以下代码在Slick Grid中填充数据。

 this.dataViewObj.beginUpdate();
 if (items && items.length > 0) {
      this.dataViewObj.setItems(items, ["id"]);
 }
 this.dataViewObj.endUpdate();
 this.dataViewObj.refresh();

 this.angularGrid.slickGrid.render();
 this.angularGrid.gridService.renderGrid();

在地图上时,我正在DataView对象的“ onRowCountChanged”事件中呈现数据。

this.dataViewObj.onRowCountChanged.subscribe(function (e, args) {
   /**
   * iterate over data in data view object and create an array of pointData 
   */
   dataSharingService.notifyMapToRenderPoints.emit(pointData)
})

现在问题是,在网格中首次呈现数据时以及每次将过滤器应用于网格时,都会调用“ onRowCountChanged”函数。

我想区分网格中的首次数据加载和滤波后的数据加载,因为这是我第一次要在地图上绘制点,并且每次应用过滤器时,都应根据以下条件使同一组点可见/不可见:在网格中看到的数据。

如何在Slick Grid中区分首次数据加载和过滤后的数据加载。

angular slickgrid
1个回答
0
投票

您不能只声明

var dataHasLoaded = false;

在某处,并使用它来做出决定,例如:

this.dataViewObj.onRowCountChanged.subscribe(function (e, args) {
  if (dataHasLoaded) {
    refreshBehaviour();
  } else {
    dataLoadBehaviour();
    dataHasLoaded = true;
  } 
})

您也可以设置

dataHasLoaded = false;

如果要再次加载数据,请在代码中的其他位置。

© www.soinside.com 2019 - 2024. All rights reserved.