1

私がやりたいことは、単純に dataProvider に追加することですが、そうするとエラーが発生します。

これが私が実行しようとしているコードです...

dg.dataProvider.addItem(obj.ResultSet.Result[i]);

i を整数として使用する for ループ内にあります。

それはうまく機能します...

dg.dataProvider = obj.ResultSet.Result

しかし、データプロバイダーに複数回追加する必要があるため、それはうまくいきません。10 個のバッチで結果を取得しています。受信時に各バッチを dataProvider に追加する必要があります。

私もやってみました...

var dgDP:dataProvider = new dataProvider();

しかし、何らかの理由でFlexはそれを認識しません...

これを実現する方法についてのアイデアはありますか?

4

2 に答える 2

1

dataProvider は、多くの ListBased クラスに常駐するプロパティです。データ型ではありません。dataProvider のデータ型は何ですか? IT は、XML、配列、XMLListCollection、ArrayCollection、XMLList、または汎用オブジェクトにすることができます。[そして、他のデータ型がサポートされていると仮定します)。

dataProvider に何かを追加する「方法」は、使用している dataProvider のタイプに完全に依存します。

Flex 4 では、dataProvider オブジェクトは IList インターフェイスを実装する必要がありますが、Flex 3 では dataProvider は汎用オブジェクトです。

あなたの状況では、オブジェクトが既にあるので、それらをループして配列または ArrayCollection に追加し、ハット配列を dataProvider として使用します。

于 2010-09-05T01:09:21.443 に答える
1

を初期化する必要がありますdataProvider

<mx:DataGrid creationComplete="onDGCreate(event)"/>

脚本:

public function onDGCreate(e:Event):void
{
    var dg:DataGrid = e.currentTarget as DataGrid;
    dg.dataProvider = new ArrayCollection();
    //or
    dg.dataProvider = new XMLListCollection();
}

これで動作します:

dg.dataProvider.addItem(obj.ResultSet.Result[i]);

dataProviderプロパティにArrayCollection と XMLListCollection 以外を代入すると、 ICollectionView オブジェクトに変換されます。このインターフェースの唯一の実装者は、addItem および addItemAtListCollectionViewメソッドを持つクラス (ArrayCollection および XMLListCollection の基本クラス)です。

于 2010-09-05T05:28:22.127 に答える