3

顧客データが入力されているAdvancedDataGridがあります。各顧客には、3つの月次製品(1、3、6)とpassed、顧客が月次製品のいずれかに適格であるかどうかを指定するフィールドがあります。

現在、グリッドは顧客データをアルファベット順に並べ替えています。これは良いことですが、月次製品を並べ替えているわけではなく、それほど良いことではありません。

dataProviderは次のようになります。(私はFunderによってグループ化しています。)

{Funder:"Customer1", Product:"1 Month", Passed:"False"}, 
{Funder:"Customer1", Product:"3 Month", Passed:"True"}, 
{Funder:"Customer1", Product:"6 Month", Passed:"True"}, 
{Funder:"Customer2", Product:"1 Month", Passed:"False"}, 
{Funder:"Customer2", Product:"3 Month", Passed:"False"}, 
{Funder:"Customer2", Product:"6 Month", Passed:"False"}

グリッドで取得した結果は次のようになります

 ----------------------------------------
| Funder & Products   |  Product Passed  |
 ----------------------------------------
| Customer1           |                  |
|    6 Month          |  True            |
|    3 Month          |  True            |
|    1 Month          |  False           |
| Customer2           |                  |
|    3 Month          |  False           |
|    6 Month          |  False           |
|    1 Month          |  False           |
 ----------------------------------------

製品を分類するのに何か助けはありますか?

編集:

これが私がグリッドに使用するコードです

<mx:AdvancedDataGrid id="myADG" 
                     width="100%" height="100%"
                     initialize="gc.refresh();"
                     folderClosedIcon="{null}"
                     folderOpenIcon="{null}"
                     defaultLeafIcon="{null}">

    <mx:dataProvider>
        <mx:GroupingCollection id="gc" source="{mCustomerData}">
            <mx:grouping>
                <mx:Grouping>
                    <mx:GroupingField name="Funder"/>
                </mx:Grouping>
            </mx:grouping>
        </mx:GroupingCollection>
    </mx:dataProvider>        

    <mx:columns>
        <mx:AdvancedDataGridColumn dataField="Product" 
                                   headerText="Funder &amp; Products"/>
        <mx:AdvancedDataGridColumn dataField="Passed"
                                   headerText="Product Passed"/>
        <mx:AdvancedDataGridColumn dataField="Passed"
                                   headerText="Product Failed"/>
    </mx:columns>
</mx:AdvancedDataGrid>
4

3 に答える 3

3

さて、私は自分に合った解決策を見つけました。以下は次のとおりです。

基本的に、私は次のことを行う関数creationCompleteを呼び出します。sortData

private function sortData():void {
    var sort:Sort = new Sort();
    var sortField:SortField = new SortField("Product");

    sort.fields = [sortField];        // Set 'Product' as the field to be sorted on
    myADG.dataProvider.sort = sort;   // Add the sort to the dataProvider of the dataGrid
    gc.source.refresh();              // Refresh the GroupCollection
}

これが唯一の方法だとは思えないので、これを行う別の方法を見たいと思っています

于 2010-07-15T13:40:23.443 に答える
1

すべての目的と目的で、グリッドはデータを並べ替えません。指定した順序で提供したデータが表示されるだけです。dataProviderはユーザーが並べ替える必要があり、それに応じてグリッドが更新されます。

列ヘッダーをクリックして並べ替える場合は、AdvancedDataGridColumnのsortCompareFunctionを確認してください。

ArrayCollectionまたはXMLListCollectionを使用している場合は、それを並べ替える方法について、このドキュメントを参照してください。

于 2010-07-15T10:47:48.110 に答える
1

まったく同じ問題があり、AdobeのWebサイトで解決策を見つけました。

AdvancedDataGridでグループ内のアイテムを並べ替える方法

比較関数を記述して、グループ化フィールドで使用できます。

于 2012-09-18T12:52:42.403 に答える