Хорошо, в зависимости от того, как вопрос интерпретируется, этот код найдет элементы, которые соответствуют выбранному году группировки. Я добавил 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
.
Надеюсь, это шаг в правильном направлении для вас.