2009-06-29 4 views
0

HI、フレックスデータグリッド - アイテムレンダラーと行のスキップ

私は独自のアイテムレンダラーを備えた6列のデータグリッドを持っています。最初の列で私はチェックを行うことができますし、列にいくつかの有効なデータが含まれているかどうかを確認したい場合は、この行をスキップして、次の行に移動します。言い換えれば、現在のデータオブジェクトの残りのアイテムレンダラーの処理を停止し、次のアイテムにスキップするようにDataGridに指示する方法が必要です。何か案は?

答えて

1

私は、ListCollectionViewオブジェクト(ArrayCollectionなど)にfilterFunctionプロパティを使用することをお勧めします。これにより、グリッドに表示される前にDataGridに表示したくないオブジェクトをフィルタ処理することができ、itemRendererがすべて処理されないようにする必要があります。

0

"スキップ"オブジェクトをデータグリッドに表示し、アイテムレンダラーがそれに応答する方法を変更するだけの場合は、そのレンダラーでコードを記述する必要があります。

アイテムレンダラー内で、前の列のデータ値にアクセスできます。アイテムレンダラーで使用可能なlistDataプロパティを調べ、その結果を使用して、アイテムレンダラーの表示方法を設定する必要があります。

あなたがここにlistDataプロパティに関する情報を見つけることができます:あなたがアイテムの内部コードを書くより具体的な助けが必要な場合

var dgListData:DataGridListData = DataGridListData(listData); 

// Process all columns before the current one. 
for (var i:int = 0; i < dgListData.columnIndex; i++) 
{ 
    // Do something here to examine previous data 

    // If we should stop processing based on previous values 
    // then hide everything inside of this renderer (perhaps 
    // move to a state name 'empty' that has no children), else 
    // move to the state that renders something. 
    currentState = shouldSkipObject ? 'empty' : 'normal'; 
} 

http://livedocs.adobe.com/flex/3/langref/mx/controls/dataGridClasses/DataGridListData.html

を以前の値を調べるために、あなたはこのような何かをコーディングするかもしれませんデータレンダラーの内部にデータがどのように見えるかのサンプルだけでなく、アイテムレンダラーが実際に行うべきことの説明も含めてください。

関連する問題