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>

しかし、私のデータプロバイダーが最初にdateOfPublicationで並べられていても、グループ化後、各グループで順序が失われます。

各グループの dateOfPublication で並べ替えを強制する方法を知っていますか?

ありがとう

4

1 に答える 1

0

ええ、GroupingCollection2 は、既存の種類のデータ ソースを台無しにしているようです。

GroupFields ごとにソート関数を定義する必要があります。GroupFields compareFunction のドキュメントを参照してください。例えば:

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

比較関数は 2 つのオブジェクト (データ ソースの要素) を取り、最初の項目が 2 番目の項目より小さい/等しい/大きい場合に -1/0/1 を返します。

private function sortByDate(item1:Object, item2:Object) : int
{
   // Whatever comparison function you want
}
于 2013-03-11T15:30:07.570 に答える