1


1

Flex:AdvancedDataGridで行を非表示にする方法は?

dataProviderとしてArrayCollectionを持つAdvancedDataGridがあります。 たとえば、AdvancedDataGridの特定の行を表示または非表示にできるCheckBoxがあります。

どのように私はそれを行うことができますか?

1 Answer


5


私の提案は、データプロバイダーの `filterFunction`プロパティを使用することです。 基本的に、ArrayProvider内の特定のアイテムを除外するかどうかを決定する関数をデータプロバイダーに与えることができます(アイテムが除外される場合、AdvancedDataGridに表示されず、本質的に「非表示」になります)。 `filterFunction`のドキュメントはhttp://livedocs.adobe.com/flex/3/langref/mx/collections/ListCollectionView.html#filterFunction [こちら]にあります。

この場合、チェックボックスをオンにすると、データプロバイダー内のオブジェクトのプロパティが設定され、フィルター関数が行を含める/除外するために使用します。 いくつかの(非常に大雑把な)擬似コードは次のとおりです。

private function checkboxClickHandler( event:MouseEvent ):void
{
    /*
       Based on the MouseEvent, determine the row
       in the data grid you're dealing with
    */

    myDataProvider[someIndex].checkboxFlag = myCheckBox.selected;
    myDataProvider.refresh(); // calling refresh() re-applies the filter to
                              // account for changes.
}

private function myDataProviderFilterFunction( item:Object ):Boolean
{
     // assuming we want the item to be filtered if checkboxFlag is true
     return !item["checkboxFlag"];
}