Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 使用分组集合对高级DataGrid进行排序_Actionscript 3_Apache Flex_Air - Fatal编程技术网

Actionscript 3 使用分组集合对高级DataGrid进行排序

Actionscript 3 使用分组集合对高级DataGrid进行排序,actionscript-3,apache-flex,air,Actionscript 3,Apache Flex,Air,我包装了一个先进的datagrd和分组选项来显示数据。 在我的例子中,我想显示作者列表和他们的书 <mx:AdvancedDataGrid height="350" displayItemsExpanded="true"> <mx:dataProvider> <mx:GroupingCollection2 id="groupingCollection" source="{bookList}"> <

我包装了一个先进的datagrd和分组选项来显示数据。 在我的例子中,我想显示作者列表和他们的书

<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>

但即使我的数据提供者在开始时是按发布日期排序的,在分组后,每个组中的顺序都会丢失

您知道如何在每个组的发布日期之前强制重新订购吗


谢谢,GroupingCollection2似乎破坏了现有的数据源

您需要为每个GroupFields定义一个排序函数-查看GroupFields compareFunction的文档。例如:

<mx:GroupingField name="author" compareFunction="sortByDate"/>
private function sortByDate(item1:Object, item2:Object) : int
{
   // Whatever comparison function you want
}