首页 > 解决方案 > Ag-Grid setRowData 没有设置网格内的数据

问题描述

我有一个几乎可以完美运行的网格。我在下拉列表中进行选择以获取一组网格数据,效果很好。我正在使用一项服务来保存我所有选择的值和数据,因此当用户导航回页面时,他们不必再次完成检索数据的整个过程。除网格数据外,所有值都保持不变。

我的 onGridReady() 函数如下:

  onGridReady(params) {
    this.gridApi = params.api;
    this.gridColumnApi = params.columnApi;

    if(this._forecastService.gridData.length > 0) {
      this.filterData();
      this.gridApi.redrawRows();
    } else {
      this.gridApi.showNoRowsOverlay();
    }
  }

filterData函数如下:

filterData() {
    let historyData = this._forecastService.gridData.filter(row => { 
      if(this._forecastService.history) {
        return row.Section === "History";
      }
    });

    let retailData = this._forecastService.gridData.filter(row => { 
      if(this._forecastService.retail) {
        return row.Section === "Retail";
      }
    });

    let volumeData = this._forecastService.gridData.filter(row => { 
      if(this._forecastService.volume) {
        return row.Section === "Volume";
      }
    });

    let nsiData = this._forecastService.gridData.filter(row => { 
      if(this._forecastService.nsi) {
        return row.Section === "NSI";
      }
    });

    let deadNetData = this._forecastService.gridData.filter(row => { 
      if(this._forecastService.deadNet) {
        return row.Section === "Dead NET";
      }
    });

    let executionData = this._forecastService.gridData.filter(row => { 
      if(this._forecastService.execution) {
        return row.Section === "Execution";
      }
    });

    this.filteredData = [...historyData, ...retailData, ...volumeData, ...nsiData, ...deadNetData, ...executionData];
    if(this.filteredData.length === 0 && this._forecastService.gridData.length > 0) {
      this.filteredData = [...this._forecastService.gridData];
    }

    this.gridApi.setRowData(this.filteredData);
  }

我已经放置了浏览器断点并单步执行了代码。数据就在那里,正如我所料,它到达了 setRowData(),除了网格中没有显示数据。

标签: javascriptangularag-grid

解决方案


推荐阅读