我正在使用 GroupingCollection 绑定我的高级数据网格。我使用 groupingcollection 按日期对数据进行分组。
现在我需要通过代码选择datagrid中的数据。有谁知道如何做到这一点?我需要遍历 adg 的 dataprovider 并选择与选择条件匹配的项目。
请指教
谢谢 :)
我正在使用 GroupingCollection 绑定我的高级数据网格。我使用 groupingcollection 按日期对数据进行分组。
现在我需要通过代码选择datagrid中的数据。有谁知道如何做到这一点?我需要遍历 adg 的 dataprovider 并选择与选择条件匹配的项目。
请指教
谢谢 :)
好的,根据问题的解释方式,此代码将找到与所选分组年份匹配的项目。我在 中添加了一个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>
请注意,首先我从 AdvancedDataGrid dataProvider 获取 GroupingCollection,然后从 GroupingCollection 获取项目。这些可以合并为一个步骤,但这种方式对于示例来说更具可读性。不知道您要查找的确切数据我只是name
从数据中获取该字段,item
但您没有理由不能获取整个item
.
希望这对您来说是朝着正确方向迈出的一步。
The source
property should contain the flat representation of the data.