我有一個序列號列,我需要按 Ag Grid(用于 React)中的最后幾位數字進行排序:
這是默認排序的示例:

而不是:
HS790022045
HS790022044
HS790022042
HS790022040
HS770022050
HS770022048
HS770022046
HS770022043
我倒要看看:
HS770022050
HS770022048
HS770022046
HS790022045
HS790022044
HS770022043
HS790022042
HS790022040
這些是序列號,所以“前綴”是型號,然后它們是型號年份 22,最后 3 位數字是應該按順序排序的數字。
我認為有一種方法可以在列狀態級別執行此操作:
const SORT_MODEL = [
{
colId: 'RequiredDate',
sort: 'desc',
sortIndex: 0,
},
{
colId: 'Reference',
sort: 'desc',
sortIndex: 1,
},
]
gridColumnApi.applyColumnState({
state: SORT_MODEL,
defaultState: { sort: null },
})
或者可能在使用比較器的列定義級別,但我不確定如何......
{
field: 'Reference',
headerName: 'Reference',
comparator: ????????
},
在 SQL 中,我可以使用這樣的東西來完成這個:
ORDER BY RIGHT(Reference,3) DESC
可能是我想不到的簡單事情?
uj5u.com熱心網友回復:
您應該使用帶有自定義比較器功能的列比較器,如下所示:
const comparator = (curr, next) => {
const currVal = parseInt(curr.slice(-3), 10);
const nextVal = parseInt(next.slice(-3), 10);
if (currVal === nextVal) { return 0; }
return currVal < nextVal ? -1 : 1;
}
const columnDefs = [
{ field: 'reference', comparator }
];
在此處查看作業示例:https : //plnkr.co/edit/QrpqjZFS8k4t6hO7
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/397538.html
標籤:javascript 排序 农业网格 ag-grid-react
下一篇:帕斯卡冒泡排序列印每個排序的行
