2013-03-25 3 views
1

Я разрабатываю довольно большое программное обеспечение для анализа данных на уровне предприятия, основанное на flex-4. Обычно мне нужно фильтровать datagrids на основе выбора пользователей, для чего требуется выполнить запрос в моей базе данных. Мне интересно, есть ли способ фильтровать данные сетки без sql-запроса? Это займет очень мало времени, когда это вызовет у меня 2-3-минутную задержку.Фильтрация данных Без запроса sql

ответ

1

Если вы используете ArrayCollection (или другую реализацию ICollectionView), посмотрите на ICollectionView.filterFunction property. Вы можете настроить его на то, что вам нужно после взаимодействия с пользователем, и вызвать ICollectionView.refresh() - все связанные сетки должны автоматически отображать отфильтрованные данные.

+0

Oups! Тот же ответ -_- –

+0

, следовательно, эти два ответа одинаковы и полезны тоже, я думал, что было бы уместно принять их обоих :) –

1

Существует много способов сделать это в ActionScript. Однако, поскольку вы используете Flex, давайте полагаться на фреймворк. Компонент, который вы ищете filterFunction (см the docs):

Учитывая объект данных, такие как {name:"Jo", type:"employee"}, вы можете выбирать сотрудников с:

myArrayCollection.filterFunction = function(data:Object):Boolean { 
    return data.type == "employee"; 
} 
myArrayCollection.refresh(); 

сетке данные должны быть затем соответствующим образом обновляется.

Конечно, в зависимости от количества элементов, присутствующих в списке, это может работать в мгновение ока или быть ужасно медленным =)

+0

да приятель, работает медленно для действительно больших данных: | –

+0

В случае, если это приложение AIR, использование SQLLite может быть хорошим вариантом. Если нет, возможно, XML/E4X даст лучшие результаты. –

Смежные вопросы