使用当前过滤器实现CSV下载并进行排序

时间:2019-06-04 22:42:06

标签: csv react-data-grid

我需要实现下载功能。它将尊重当前列,过滤器和排序,读取react-data-grid(数据框)中的数据,并创建一个数组json(或逗号分隔的字符串),然后将其传递给react-csv模块。

我有一个从后端填充的数据结构,但未对其进行过滤或排序。我需要能够逐行向网格询问其数据。谁能指出我正确的方向?

1 个答案:

答案 0 :(得分:0)

没有代码或上下文,我无法确定地回答...
您为rowGetter道具提供了要显示的集合,或者为要显示的行提供了方法...我在考虑是否进行过滤,那么很可能已经有了某种支持该功能的机制...无论哪种方式,您可以通过某种方式使用此属性的值来获取在网格中看到的内容。
如果从字面上想查询网格,则可以尝试向网格添加引用,然后查看是否可以向其查询行数据。我不能确定地记得我通过ref在网格中看到了一个行道具,但是我想你应该能够(**,)

...

handleExport = async => {
  const exportRows = rows;
  // const exportRows = getRows(initialRows, filters);
  // const exportRows = this.state.gridref.CurrentRows   DISCLAIMER:CurrentRows is just for giving the idea... check out the ref yourself to see if it's possible to get the rows via the grid refs props. 
 downloadCSV( exportRows )
}
...
<ReactDataGrid
      ref={input => {this.state.gridref = input}}
      columns={columns}
      rowGetter={i => rows[i]} // or maybe rowGetter={i => getRows(initialRows, filters)[i]}
      rowsCount={rows.length}
      onGridSort={(sortColumn, sortDirection) =>
        setRows(sortRows(initialRows, sortColumn, sortDirection))
      }
    />

我只在this.state.gridRef中设置过constructor道具,但我想您也可以在componentDidMount中进行过[设置/初始化]它。 ..
这样初始化:
this.state.gridRef = React.createRef()