I have an ADG (simplified example that reproduces the issue follows). I
want the data broken down by category, but sorted by value (which is
*not* grouped) within each category. I thought the way to do this would
be to set up a ListCollectionView to sort my data, then put a grouping
collection on top. The GroupingCollection, however, seems to undo the
ListCollectionView sorting.

Is there a way to achieve this with the AdvancedDataGrid? If I bind
sortedData to a plain DataGrid (with no grouping), this works as
expected.

Code follows: (note that within each group, things are *not* sorted by
value).

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
layout="vertical">
    <mx:Script>
        <![CDATA[
            import mx.collections.SortField;
            import mx.collections.Sort;
            import mx.collections.ListCollectionView;
            import mx.collections.ArrayCollection;
            
            public var myData:ArrayCollection = new ArrayCollection([
                { category: 'foo', value: 4 },
                { category: 'foo', value: 3 },
                { category: 'foo', value: 7 },
                { category: 'bar', value: 2 },
                { category: 'bar', value: 1 },
                { category: 'bar', value: 8 },
            ]);
            
            public var sortedData:ListCollectionView = new
ListCollectionView(myData);
            
            private function handleAdgInit(e:Event):void {
                var valSort:Sort = new Sort();
                valSort.fields = [ new SortField('category'), new
SortField('value', false, false, true) ];
                sortedData.sort = valSort;
                sortedData.refresh(); 
                gc.refresh();
            }

        ]]>
    </mx:Script>
        <mx:AdvancedDataGrid id="myADG" 
            width="100%" height="100%" allowMultipleSelection="true"
            initialize="handleAdgInit(event)">        
            <mx:dataProvider>
                <mx:GroupingCollection id="gc" source="{sortedData}">
                    <mx:grouping>
                        <mx:Grouping>
                            <mx:GroupingField name="category"/>
                        </mx:Grouping>
                    </mx:grouping>
                </mx:GroupingCollection>
            </mx:dataProvider>        
            
            <mx:columns>
                <mx:AdvancedDataGridColumn dataField="category"/>
                <mx:AdvancedDataGridColumn dataField="value"/>
            </mx:columns>
       </mx:AdvancedDataGrid>
</mx:Application>

-- 
Maciek Sakrejda
Truviso, Inc.
http://www.truviso.com


Reply via email to