Apache flex Flex:DataGrid默认排序中的问题
我有一个datagrid,其中包含如下数据: 第1列第2列Apache flex Flex:DataGrid默认排序中的问题,apache-flex,datagrid,Apache Flex,Datagrid,我有一个datagrid,其中包含如下数据: 第1列第2列 110 2 11 3 10 4.10 单击Column2并使用默认排序时,datagrid将变成: 第1列第2列 3 10 110 4.10 2 11 为什么?我想应该是: 第1列第2列 110 3 10 4.10 2 11 默认排序有什么问题?有人能告诉我如何解决吗 谢谢 这是一个有趣的问题。我查看了一下,发现最后调用了Array.sortOn()函数。在对该函数的描述中,有一行是这样说的: 修改数组以反映排序顺序;具有相同排序字段
110
2 11
3 10
4.10
单击Column2并使用默认排序时,datagrid将变成: 第1列第2列
3 10
110
4.10
2 11
为什么?我想应该是: 第1列第2列
110
3 10
4.10
2 11
默认排序有什么问题?有人能告诉我如何解决吗
谢谢 这是一个有趣的问题。我查看了一下,发现最后调用了
Array.sortOn()
函数。在对该函数的描述中,有一行是这样说的:
- 修改数组以反映排序顺序;具有相同排序字段的多个元素以无特定顺序连续放置在排序数组中
<mx:DataGrid id="DG" >
<mx:columns>
<mx:DataGridColumn dataField="0" />
<mx:DataGridColumn dataField="1" sortCompareFunction="testsortCompareFunction" />
</mx:columns>
</mx:DataGrid>
排序功能:
private function testsortCompareFunction(object1:Object,object2:Object):int
{
if (object1[1]>object2[1]) return 1;
if (object1[1]<object2[1]) return -1;
if (object1[1]==object2[1])
{
if (object1[0]>object2[0]) return 1;
if (object1[0]<object2[0]) return -1;
}
return 0;
}
private function testsort比较(object1:Object,object2:Object):int
{
if(object1[1]>object2[1])返回1;
if(object1[1]object2[0])返回1;
if(object1[0]嘿,Robert,谢谢你的回复。我想记录上一次排序的内部机制可以解决这个问题,添加排序比较不是一个好方法。你有什么好主意吗?