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

时间:2016-01-29 10:10:41

标签: actionscript-3 flex datagrid

今天我在datagrid中遇到了一些奇怪的问题。

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

我有datagrid并在顶部标题点击它对列进行排序,假设这是列。

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

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

喜欢它显示:

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

在m之后和o之前考虑空值。我认为它认为null为n(我可能错了)。

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

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

您可以创建自定义sortCompareFunction并强制使用SortingCollator类,该类应该处理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">