Flex GroupingCollection: цикл через детей - PullRequest
1 голос
/ 13 ноября 2009

Я использую GroupingCollection для привязки моей расширенной таблицы данных. Я использовал группировку для группировки данных по дате.

Теперь мне нужно выбрать данные в сетке данных через код. У кого-нибудь есть идеи, как это сделать? Мне нужно перебрать провайдер данных adg и выбрать элемент, который соответствует критериям для выбора.

Пожалуйста, сообщите

Спасибо:)

Ответы [ 2 ]

1 голос
/ 17 ноября 2009

Хорошо, в зависимости от того, как вопрос интерпретируется, этот код найдет элементы, которые соответствуют выбранному году группировки. Я добавил click=findStuff(event) к mx:AdvancedDataGrid, как показано здесь:

[Bindable]  
public var myData:ArrayCollection = new ArrayCollection([
    {name:'Denise', grad:'2000'},
    {name:'Steph', grad:'1990'},
    {name:'Jane', grad:'2000'},
    {name:'Nicole', grad:'2000'},
    {name:'Donna', grad:'1990'}]);

public function findStuff(e:Event):void {
    var groupColl:GroupingCollection = adGrid.dataProvider.source;
    var items:Object = groupColl.source;

    var ac:ArrayCollection = new ArrayCollection();
    for (var i:int=0; i<items.length; i++) {
        if (items[i].grad == e.target.text) {
            ac.addItem(items[i].name);
        }
    }
    Alert.show("selected items: " + ac.toArray());
}

<mx:GroupingCollection id="coll" source="{myData}">
    <mx:Grouping>
        <mx:GroupingField name="grad" />
    </mx:Grouping>
</mx:GroupingCollection>

<mx:AdvancedDataGrid id="adGrid" dataProvider="{coll}"
                         click="findStuff(event)"
                         initialize="coll.refresh()">
    <mx:columns>
        <mx:AdvancedDataGridColumn headerText="name" dataField="name"/>
    </mx:columns>
</mx:AdvancedDataGrid>

Обратите внимание, что сначала я получаю GroupingCollection из AdvancedDataGrid dataProvider, затем я получаю элементы из GroupingCollection. Они могут быть объединены в один шаг, но этот способ более читабелен для примера. Не зная точно, какие данные вы ищете, я просто извлекаю поле name из данных item, но нет никаких причин, по которым вы не можете получить все item.

Надеюсь, это шаг в правильном направлении для вас.

0 голосов
/ 13 ноября 2009

Свойство source должно содержать плоское представление данных.

...