在 datagrid 上排序也会在 flex 中对空值进行排序

Sort on datagrid also sort null values in flex

今天我在数据网格中遇到了一些奇怪的问题。

<s:DataGrid id="grid_result" dataProvider="{somelist}" sortableColumns="true">

我有数据网格,在顶部 header 单击它对列进行排序,假设这是该列。

<s:GridColumn headerText="Temp" dataField="tempName">

它将显示 someList 中的 tempName。但是有些数据是空的。因此,当我在此列的 header 上对此列进行排序时,单击它也会对空值进行排序。

点赞显示:

A
B
.
.
l
m
blank cell
blank cell
o
p
.
.
Z

m后o前考虑null值。我认为它将 null 视为 n(我对此可能是错误的)。

我想最后显示空值。我搜索了很多但没有找到任何解决方案。

非常感谢任何帮助。

您可以创建自定义 sortCompareFunction 并强制使用 SortingCollator class,这应该可以处理 null 值。

private var collator:SortingCollator = new SortingCollator();

private function sortCompareFunction(obj1:Object, obj2:Object, gc:GridColumn):int {
    return collator.compare(obj1[gc.dataField], obj2[gc.dataField]);
}

然后赋值给GridColumn.

<s:GridColumn headerText="Temp" dataField="tempName" sortCompareFunction="sortCompareFunction">