データプロバイダーとして ArrayCollection を持つ AdvancedDataGrid があります。たとえば、AdvancedDataGrid の特定の行を表示または非表示にできる CheckBox があります。
どのように私はそれを行うことができますか?
データプロバイダーとして ArrayCollection を持つ AdvancedDataGrid があります。たとえば、AdvancedDataGrid の特定の行を表示または非表示にできる CheckBox があります。
どのように私はそれを行うことができますか?
私の提案は、データプロバイダーの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"];
}