Ag Grid 防止列在排序过程中发生变化

Ag Grid Prevent Column from changing during sort

我有以下列定义

<AgGridColumn headerName="Rank" cellRendererFramework={NodeIDRenderer} suppressFilter={true} suppressSorting={true} lockPosition/>

它使用的 Cell 渲染器是这个

import React from 'react';

class NodeIDRenderer extends React.Component {

  render() {

    return (
      <div>{Number(this.props.node.id) + 1}</div>
    );
  }
}

export default NodeIDRenderer;

我想做的是让这个列成为排序时对其他列进行排名的一种方式。所以我希望此列始终从 1 开始并转到 N。我面临的问题是,当我对任何其他列进行排序时,此排名列也会发生变化。有没有办法 "lock" 列让数据永远不会移动?

使用 node.rowIndex 而不是 node.id。 id 被设置一次以维护对节点的唯一引用,索引在任何排序或过滤器上更新。我确实注意到过滤器对行有一点不可靠的趋势,所以我在更新过滤器时调用了网格 api 的 refreshCells 函数。 Here is a plunker 你可以测试一下。