有一个下拉列表,根据下拉列表的值,我在这里对 ag 网格进行排序,但我想在使用 id 956306 进行排序时修复顶部的一行,我怎样才能实现它呢??
const handleApplyQuickSort = (selectedSort: string) => {
const colId = SORT_MAP[selectedSort];
if (colId && gridRef.current) {
gridRef.current?.columnApi?.applyColumnState({
state : [{ colId: colId, sort: 'desc' }],
defaultState : { sort: null },
});
initialSortAppliedRef.current = true;
const rowIndexToKeepOnTop = gridRef?.current?.props?.rowData?.findIndex((row:UIModel) => String(row.id) === '956306');
if (rowIndexToKeepOnTop !== -1 && rowIndexToKeepOnTop) {
const rowToKeepOnTop = gridRef?.current?.props?.rowData?.splice(rowIndexToKeepOnTop, 1)[0];
gridRef?.current?.props?.rowData?.unshift(rowToKeepOnTop);
}
}
};
使用比较器进行自定义排序像这样
const gridOptions = {
columnDefs: [
{
field: 'age',
// simple number comparator
comparator: (valueA, valueB, nodeA, nodeB, isDescending) => valueA - valueB
},
{
field: 'name',
// simple string comparator
comparator: (valueA, valueB, nodeA, nodeB, isDescending) => {
if (nodeA.data.id === '956306') return -Number.NEGATIVE_INFINITY;
if (valueA == valueB) return 0;
return (valueA > valueB) ? 1 : -1;
}
}
],
// other grid options ...
}