Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ag网格过滤器排序错误_Javascript_Ag Grid - Fatal编程技术网

Javascript Ag网格过滤器排序错误

Javascript Ag网格过滤器排序错误,javascript,ag-grid,Javascript,Ag Grid,我使用的是数字过滤,但有一个小问题: 正如您所看到的,除非数字是2xxx,否则排序进行得很顺利,但当它达到3个数字时,就开始令人困惑 我所期望的是排序从500开始,上升到2400+或相反。也许我不知道有什么特别的选择可以实现这一点,我开始疯狂地尝试不同的选择,但似乎没有任何效果。我希望你能帮忙。谢谢 更新: 我在最初的ag网格过滤示例中再现了该问题: 我只是改变了年份值,正如您所看到的,它并没有按照预期进行排序 if (r.year === 2008) r.year = 860 if (r.y

我使用的是数字过滤,但有一个小问题:

正如您所看到的,除非数字是2xxx,否则排序进行得很顺利,但当它达到3个数字时,就开始令人困惑

我所期望的是排序从500开始,上升到2400+或相反。也许我不知道有什么特别的选择可以实现这一点,我开始疯狂地尝试不同的选择,但似乎没有任何效果。我希望你能帮忙。谢谢

更新

我在最初的ag网格过滤示例中再现了该问题: 我只是改变了年份值,正如您所看到的,它并没有按照预期进行排序

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

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

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*/
];
更新:

看起来您需要将
sortable
添加到
gridoptions

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

它似乎是对字符串而不是数字进行排序。请分享你的代码。我不能分享整个项目,这是不可能的。但我在这里复制了它:请尝试在年份栏中过滤。这是我修改的ag网格的例子。我会尝试实现这个解决方案,谢谢你的回答。数据排序已经改变,但现在一切看起来都是随机的。问题中增加了截图,基本上去掉了主栏的排序,过滤器的排序失败。在plunker示例中,它看起来已排序,但主列中的排序已被破坏。经过一些额外的调整后,我已经能够对其进行排序,感谢您的帮助。Regards@AyeyeBrazo我很高兴这对你有帮助!:)