Flex: как скрыть строку в AdvancedDataGrid? - PullRequest
1 голос
/ 20 января 2010

У меня есть AdvancedDataGrid с ArrayCollection в качестве dataProvider. Например, у меня есть флажок, который позволяет мне показывать или скрывать определенные строки в AdvancedDataGrid.

Есть идеи, как мне это сделать?

1 Ответ

5 голосов
/ 20 января 2010

Я бы предложил использовать свойство 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"];
}
...