首页 > 解决方案 > Ag-grid 过滤器排序错误

问题描述

我正在使用ag-grid,但在数值过滤方面有一个小问题:

在此处输入图像描述

如您所见,除非数字是 2xxx,否则排序进展顺利,但一旦达到 3 个数字,它就会开始混乱。

我所期望的是从 500 开始到 2400+ 或相反的排序。也许我不知道要添加一个特殊选项来实现这一点,我正在疯狂尝试不同的选项,但似乎没有任何效果。我希望你能帮忙。谢谢。

更新

我在关于过滤的原始 ag-grid 示例中重现了该问题: https ://plnkr.co/edit/Tn9ZeCH4fmLr2ZHQPivQ?p=preview我只是改变了年份值,你可以看到它没有按预期排序。

if (r.year === 2008) r.year = 860
if (r.year === 2012) r.year = 920

标签: javascriptag-grid

解决方案


原因是它将数据排序为字符串,而不是数字。因此,只需将自定义排序添加到您comparatoryeat字段中:

var numberSort = (num1, num2) => {
    return num1 - num2;
  };
var columnDefs = [
    /*The other code is omitted for the brevity*/
    {headerName: "Year", field: "year", width: 90, comparator: numberSort},
    /*The other code is omitted for the brevity*/
];

更新:

看起来您需要添加sortablegridoptions

var gridOptions = {
    defaultColDef: {
        filter: true,
        sortable: true
    },
}

推荐阅读