2

我有以下列定义

<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。我面临的问题是,当我对其他任何列进行排序时,此 Rank 列也会发生变化。有没有办法“锁定”列,使数据永远不会移动?

4

1 回答 1

2

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

于 2018-03-14T15:34:31.300 回答