我在ArrayCollection中有一个项目列表,我希望按某个值(而不是字母顺序)进行排序。有可能这样分类吗?
以下是我希望被排序的值:
已解决
关着的不营业的
打开
,除了提供的答案
如果数组集合是DataGrid的一部分,那么可以在DataGrid的GridColumn上设置sortCompareFunction。注意,这种排序比较函数的语法是不同的,因为网格列in是传入的,而不是字段。
示例代码
与星火DataGrid连用
private var desiredItemOrder:Array = ["In Progress", "Open", "Resolved", "Closed"];
private function sortCompareFunction(item:Object, anotherItem:Object, column:GridColumn = null):int
{
var itemIndex:Number = desiredItemOrder.indexOf(item.fields.status.name);
var anotherItemIndex:Number = desiredItemOrder.indexOf(anotherItem.fields.status.name);
if (itemIndex == -1 || anotherItemIndex == -1)
throw new Error("Invalid value for criticality ");
if (itemIndex == anotherItemIndex)
return 0;
if (itemIndex > anotherItemIndex)
return 1;
return -1;
}
<s:DataGrid dataProvider="{issuesCollection}">
<s:columns>
<s:ArrayList>
<s:GridColumn dataField="fields.status.name" headerText="Status" sortCompareFunction="sortCompareFunction"/>
</s:ArrayList>
</s:columns>
</s:DataGrid>文档化
排序compareFunction
DataGridColumn sortCompareFunction
GridColumn sortCompareFunction
发布于 2012-09-04 21:32:05
这可能对你有帮助。
https://stackoverflow.com/questions/12271581
复制相似问题