Flex / actionscript: использование dataDescriptor в AdvancedDataGrid - PullRequest
1 голос
/ 28 мая 2009

У меня есть иерархический набор данных, который я хотел бы отобразить в advancedDataGrid. Мои данные - это набор объектов составных значений, которые не используют атрибут 'children'. В элементе управления Tree вы можете создать собственный dataDescriptor, чтобы определить, какие элементы содержат дочерние элементы узла. Можно ли это сделать и на сетке данных?

Ответы [ 2 ]

0 голосов
/ 23 февраля 2012

Иерархические данные имеют свойство childrenField, которое можно использовать, чтобы «сообщить» элементу управления, где следует искать ветви.

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

0 голосов
/ 28 мая 2009

Из документов Adobe Live на примерах AdvancedDataGrid вы можете видеть, что для dataProvider AdvancedDataGrid можно установить экземпляр GroupingCollection, чтобы создать несколько групп для ваших данных. Спускаясь вниз по иерархии классов, есть HierarchicalData, который вам нужно использовать при установке dataProvider на AdvancedDataGrid. Пример (извините за использование массивов вместо одного XML):

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
    <mx:Array id="dianaSerfes">
        <mx:Object name="geen" surname="zod" />
    </mx:Array>
    <mx:Array id="xySerfs">
        <mx:Object name="sdf" surname="sdfsdgd" />
    </mx:Array>
    <mx:Array id="johnSerfs">
        <mx:Object name="jack" surname="the ripper" />
        <mx:Object name="diana" surname="bloom" serfs="{dianaSerfes}"/>
    </mx:Array>
    <mx:Array id="myData">
        <mx:Object name="xy" surname="zzz" serfs="{xySerfs}" />
        <mx:Object name="blue" surname="zed" />
        <mx:Object name="John" surname="smith" serfs="{johnSerfs}" />
    </mx:Array>
    <mx:AdvancedDataGrid width="100%" height="100%">
        <mx:dataProvider>
            <mx:HierarchicalData id="hd" source="{myData}" childrenField="serfs" />
        </mx:dataProvider>
        <mx:columns>
            <mx:AdvancedDataGridColumn dataField="name" />
            <mx:AdvancedDataGridColumn dataField="surname" />
        </mx:columns>
    </mx:AdvancedDataGrid>
</mx:Application>
...