GroupingCollectionを使用してadvanceddatagridをバインドしています。groupingcollectionを使用してデータを日付でグループ化しました。
次に、コードを介してデータグリッド内のデータを選択する必要があります。誰かがこれを行う方法について何か考えがありますか?adgのデータプロバイダーをループして、選択基準に一致するアイテムを選択する必要があります。
お知らせ下さい
ありがとう :)
GroupingCollectionを使用してadvanceddatagridをバインドしています。groupingcollectionを使用してデータを日付でグループ化しました。
次に、コードを介してデータグリッド内のデータを選択する必要があります。誰かがこれを行う方法について何か考えがありますか?adgのデータプロバイダーをループして、選択基準に一致するアイテムを選択する必要があります。
お知らせ下さい
ありがとう :)
さて、質問の解釈に応じて、このコードは選択されたグループ化年に一致するアイテムを検索します。ここに示すよう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>
最初にAdvancedDataGriddataProviderからGroupingCollectionを取得し、次にGroupingCollectionからアイテムを取得することに注意してください。これらを1つのステップに組み合わせることができますが、この方法の方が例として読みやすくなっています。探しているデータが正確にわからないのでname
、データからフィールドを取得するだけitem
ですが、全体を取得できなかった理由はありませんitem
。
うまくいけば、これはあなたにとって正しい方向への一歩です。
source
プロパティには、データのフラットな表現が含まれている必要があります。