Flex AdvancedDatagrid заполняется groupingCollection на основе xml

В настоящее время я пытаюсь заполнить flex 3 AdvancedDatagrid с помощью xml, полученного от HTTPService с id="produktMatrix_data". Макет выглядит следующим образом: http://pastebin.com/NqFqgj86 Результат должен выглядеть так: adg Следующие строки, такие как KID, M.. и т. д., будут заполнены другими источниками, жестко закодированы или введены пользователем. и выходят за рамки этого вопроса. Мой код для AdvencedDataGrid выглядит следующим образом:

<mx:AdvancedDataGrid dataProvider="{matrixProvider}">  
<mx:columns> 
    <mx:AdvancedDataGridColumn headerText="Zielprodukt" dataField="prod_txt" editable="false" >            
    </mx:AdvancedDataGridColumn>                        
    <mx:AdvancedDataGridColumn headerText="KID" dataField="kid" editable="true" editorDataField="selectedItem" >
    </mx:AdvancedDataGridColumn>
    <mx:AdvancedDataGridColumn headerText="MVLZ-Bezug" dataField="mvlz_bez" >
    </mx:AdvancedDataGridColumn>
    <mx:AdvancedDataGridColumn headerText="MVLZ-Dauer" dataField="mvlz_dauer">
    </mx:AdvancedDataGridColumn>
    <mx:AdvancedDataGridColumn headerText="MVLZ-Einheit" dataField="mvlz_einheit">
    </mx:AdvancedDataGridColumn>
    <mx:AdvancedDataGridColumn headerText="Status" dataField="status" editable="true">
    </mx:AdvancedDataGridColumn>
    <mx:AdvancedDataGridColumn headerText="Prämierung" dataField="praemie" editable="true">
    </mx:AdvancedDataGridColumn>
    <mx:AdvancedDataGridColumn headerText="Gültig ab" dataField="datum_ab" editable="true">
    </mx:AdvancedDataGridColumn>
    <mx:AdvancedDataGridColumn headerText="Gültig bis" dataField="datum_bis" editable="true">
    </mx:AdvancedDataGridColumn>
</mx:columns>

The dataProvider is coded:

    <mx:GroupingCollection id="matrixProvider" source="{produktMatrix_data.lastResult.result.pos.entry}" childrenField="undefined">
    <mx:Grouping>
        <mx:GroupingField name="portfolio"/>
        <mx:GroupingField name="layer"/>
        <mx:GroupingField name="cluster"/>
        <mx:GroupingField name="prod_txt"/>
    </mx:Grouping>
</mx:GroupingCollection>

Но это не заполняет AdvancedDataGrid. Итак, как я должен настроить свой код, чтобы он работал? Или я должен выбрать совершенно другой подход?


person omnibrain    schedule 20.10.2010    source источник


Ответы (1)


На самом деле на сайте livedocs есть довольно хороший пример:

http://livedocs.adobe.com/flex/3/html/help.html?content=advdatagrid_08.html

По сути, вы поместили коллекцию группировок в сетку данных, которая (копирование/вставка) выглядит следующим образом:

<mx:AdvancedDataGrid id="myADG" 
        width="100%" height="100%" 
        initialize="gc.refresh();">        
        <mx:dataProvider>
            <mx:GroupingCollection id="gc" source="{dpFlat}">
                    <mx:Grouping>
                        <mx:GroupingField name="Region"/>
                        <mx:GroupingField name="Territory"/>
                    </mx:Grouping>
            </mx:GroupingCollection>
        </mx:dataProvider>        

        <mx:columns>
            <mx:AdvancedDataGridColumn dataField="Region"/>
            <mx:AdvancedDataGridColumn dataField="Territory"/>
            <mx:AdvancedDataGridColumn dataField="Territory_Rep"
                headerText="Territory Rep"/>
            <mx:AdvancedDataGridColumn dataField="Actual"/>
            <mx:AdvancedDataGridColumn dataField="Estimate"/>
        </mx:columns>
   </mx:AdvancedDataGrid>
person Organiccat    schedule 20.10.2010
comment
Мне пришлось добавить matrixProvider.refresh() в функцию, которая вызывает produktMatrix_data.send(). Теперь это работает. Сначала я думал, что не имеет значения, создается ли группирующая коллекция внутри dataProvider или используется через привязку данных. - person omnibrain; 21.10.2010
comment
При использовании групповой коллекции вам придется обновлять dataProvider через обновление, в противном случае большинство поставщиков данных работают должным образом, простое их обновление приведет к обновлению всего, к чему они привязаны. Advanced Data Grids — не лучший мой друг. - person Organiccat; 21.10.2010