2013-03-10 48 views
1

我創建了高級數據集和分組選項來顯示數據。 就我而言,我想用他們的書籍來顯示作者列表。使用分組集合對高級數據網格進行排序

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

但即使我的dataProvider是爲了通過dateOfPublication之初,分組後,訂單丟失每個小組。

你知道如何通過dateOfPublication強制重新排序嗎?

感謝

回答

0

呀,使用GroupingCollection2似乎裂傷現有排序的數據源。

您需要爲每個GroupField定義一個排序函數 - 查看GroupFields compareFunction的文檔。例如:

<mx:GroupingField name="author" compareFunction="sortByDate"/> 

比較功能需要兩個對象(數據源的元素),並返回-1/0/1如果第一項是低於/等於/大於第二項:

private function sortByDate(item1:Object, item2:Object) : int 
{ 
    // Whatever comparison function you want 
}