【问题标题】:Differentiate between first time data load vs filtered data load in Slick Grid区分 Slick Grid 中的首次数据加载与过滤数据加载
【发布时间】:2019-10-04 07:44:22
【问题描述】:

我正在使用 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】:

    你不能直接声明

    var dataHasLoaded = false;
    

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

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

    你也可以设置

    dataHasLoaded = false;
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-13
      • 1970-01-01
      相关资源
      最近更新 更多