Удалить выбранные элементы из результатов поиска - PullRequest
0 голосов
/ 06 февраля 2012

Вариант использования:

  1. Конечный пользователь ищет что-то, и ArrayCollection возвращается с объектами Result.Это отображается в сетке данных.
  2. Конечный пользователь выбирает несколько результатов поиска и «перемещает» их в другую сетку данных для последующего использования.
  3. Конечный пользователь выполняет другой поиск.

ПРОБЛЕМА: Некоторые из результатов поиска могут содержать что-то, что пользователь уже ранее выбрал и перенес на вторую сетку данных.Я хочу удалить их из второго результата поиска.

Как я могу сделать это быстро и эффективно в коде Flex?

Ответы [ 2 ]

1 голос
/ 07 февраля 2012

disableAutoUpdate () для обеих коллекций массивов

перебирает первый и для каждого элемента второго удаляет его, если он присутствует в первом (или адаптирует алгоритм на основе того, что вы действительно хотите - не уверен)

enableAutoUpdate () в конце.

Цикл по коллекции массивов может быть быстрым, если не отправлено никаких событий.

Второй вариант, вы также можете перебрать дешевую копию, состоящую из массива, например arraycollection.source.concat (), или даже вектор, если все ваши элементы одного типа.Это даст максимальную скорость, но вы можете потерять в долгосрочной перспективе, так как вам нужно конвертировать обратно в коллекцию массивов в конце.

Так что я бы остановился на первом варианте.

0 голосов
/ 14 февраля 2012

В настоящее время я реализовал коллекцию хешей (расширяет ArrayCollection).Хеш допускает только уникальные значения, поэтому, в конце концов, он служит моей цели, хотя пользовательский интерфейс может сбить пользователя с толку.Возможно, будет реализован вышеупомянутый метод позже.:)

...