1

我创建了一个高级 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>

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

你知道如何通过 dateOfPublication 强制重新排序每个组吗?

谢谢

4

1 回答 1

0

是的,GroupingCollection2 似乎破坏了现有的数据源类型。

您需要为每个 GroupFields 定义一个排序函数 - 查看 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
}
于 2013-03-11T15:30:07.570 回答