我创建了一个avanced datagrd和grouping选项来显示数据。 就我而言,我想用他们的书显示作者名单。
<mx:AdvancedDataGrid height="350"
displayItemsExpanded="true">
<mx:dataProvider>
<mx:GroupingCollection2 id="groupingCollection"
source="{bookList}">
<mx:grouping>
<mx:Grouping>
<mx:GroupingField name="author"
/>
</mx:Grouping>
</mx:grouping>
</mx:GroupingCollection2>
</mx:dataProvider>
<mx:columns>
<mx:AdvancedDataGridColumn dataField="author"
width="150"/>
<mx:AdvancedDataGridColumn dataField="birthday"
width="100"/>
<mx:AdvancedDataGridColumn dataField="title"
width="250"/>
<mx:AdvancedDataGridColumn dataField="dateOfPublication"
width="150"
/>
</mx:columns>
但即使我的数据提供者在开始时按日期订单开始排序,在分组后,每个组中的订单都会丢失。
你知道如何通过dateOfPublication强制每个组重新排序吗?
由于
答案 0 :(得分:0)
是的,GroupingCollection2似乎破坏了现有的数据源。
您需要为每个GroupField定义一个排序函数 - 查看GroupFields compareFunction的文档。例如:
<mx:GroupingField name="author" compareFunction="sortByDate"/>
compare函数接受两个对象(数据源的元素),如果第一个项目小于/等于/大于第二个项目,则返回-1/0/1:
private function sortByDate(item1:Object, item2:Object) : int
{
// Whatever comparison function you want
}