1

GroupingCollectionを使用してadvanceddatagridをバインドしています。groupingcollectionを使用してデータを日付でグループ化しました。

次に、コードを介してデータグリッド内のデータを選択する必要があります。誰かがこれを行う方法について何か考えがありますか?adgのデータプロバイダーをループして、選択基準に一致するアイテムを選択する必要があります。

お知らせ下さい

ありがとう :)

4

2 に答える 2

1

さて、質問の解釈に応じて、このコードは選択されたグループ化年に一致するアイテムを検索します。ここに示すよう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

うまくいけば、これはあなたにとって正しい方向への一歩です。

于 2009-11-17T06:03:45.310 に答える
0

sourceプロパティには、データのフラットな表現が含まれている必要があります。

于 2009-11-13T20:19:17.203 に答える