1

データプロバイダーとして ArrayCollection を持つ AdvancedDataGrid があります。たとえば、AdvancedDataGrid の特定の行を表示または非表示にできる CheckBox があります。

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

4

1 に答える 1

5

私の提案は、データプロバイダーのfilterFunctionプロパティを使用することです。基本的に、ArrayCollection 内の特定のアイテムが除外されているかどうかを判断する関数をデータ プロバイダーに与えることができます (アイテムが除外されている場合、そのアイテムは AdvancedDataGrid に表示されず、本質的に「非表示」になります)。のドキュメントは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"];
}
于 2010-01-20T14:53:57.770 に答える