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 你可以测试一下。
我有以下列定义
<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 你可以测试一下。