我有以下列定义
<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。我面临的问题是,当我对任何其他列进行排序时,此排名列也会发生变化。有没有办法“锁定”列,使数据永远不会移动?
最佳答案
使用node.rowIndex
而不是node.id
。 id 设置一次以维护对节点的唯一引用,索引在任何排序或过滤器上更新。我确实注意到过滤器对于行有一点不可靠的倾向,所以当过滤器更新时我调用了网格 api 的 refreshCells
函数。 Here is a plunker你可以用它来测试。
关于reactjs - Ag Grid 防止列在排序过程中更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49164018/