Как отфильтровать гибкий массив данных с помощью трех флажков.? - PullRequest
0 голосов
/ 28 февраля 2011

Я новичок, чтобы сгибать.

Мне нужна твоя помощь. Может кто-нибудь помочь мне, пожалуйста.

Мои требования: Flex Datagrid должен быть отфильтрован на основе 3-х флажков. (Флажки можно установить с несколькими комбинациями).

Мой код:

Флажки:

Поставщик данных:

MXML-код:

Здесь я должен фильтровать сетку данных, когда я проверяю различные комбинации из 3 флажков. Значения флажка взяты из столбца Staus массива array. Когда я выбираю флажки «завершено» и «включено», в сетке данных должны отображаться только те записи, которые имеют статус «Завершено» и «В ожидании». Аналогично для всех комбинаций с

Кто-нибудь может дать простое решение, пожалуйста?

Спасибо, Anand.k

1 Ответ

0 голосов
/ 28 февраля 2011

Используйте ArrayCollection в качестве dataProvider и назначьте функцию фильтрации для его свойства filterFunction:

var provider:ArrayCollection;

В той части, где вы создаете экземпляр массива, присвойте ему функцию filterFunction:

provider.filterFunction = myFilteringFunction;

С кодом функции фильтра, подобной этой:

private function myFilteringFunction(item:ObjectTypeInYourArray) : Boolean {

        var show:Boolean;
        if(item.completed == checkBox1.checked && 
           item.onHold == checkBox2.checked){
                show = true;
        }

        return show;   
}

Это пример с двумя флажками.Тип значения, присвоенного атрибутам complete и onHold вашего объекта, может быть не булевым, поэтому вам придется каким-то образом преобразовать их, прежде чем сравнивать их с состоянием флажков, но я думаю, что вы поняли.

По существу, функция filterFunction, которую вы передаете своей коллекции массивов, применяется к каждому из элементов внутри и возвращает true или false в зависимости от вашего кода внутри (например, проверьте, имеет ли объект правильные значения для его свойств).Когда true значения отображаются

В событиях изменения ваших флажков вы обновляете dataProvider:

provider.refresh();

Надеюсь, что поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...