Flex/actionscript: использование dataDescriptor в AdvancedDataGrid

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

2 ответа

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

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

Из интерактивных документов Adobe на примерах 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>
Другие вопросы по тегам