Можно ли определить свойство, чтобы ограничить количество элементов, которые будут отображаться в списке mx: List? Я читал об установке свойства rowCount, но я не вижу никакого эффекта. Может ли фильтр применяться для этого? Мое намерение состояло в том, чтобы избежать удаления элементов из коллекции list/array, а просто «скрыть» их. Это можно сделать?Ограничение числа листов Flex Список элементов
ответ
Другой вариант заключается в использовании нового ArrayCollection и получите свой ограниченные элементы из вашей большой ArrayCollection:
//get first 10 elements
myArrayCollection = new ArrayCollection(myBigArrayCollection.toArray().slice(0,9));
, если вы хотите работать с пейджерами, вы могли бы держать счетчик, где вы следить за того, что страница пользователя на, и получить следующие элементы из вас большой коллекции массивов. Пример:
//this is just a (very) simple example
//page = integer (counter) for knowing which page the user is on
page = 0;
page_low = page*10;
page_high = page_low + 9;
myArrayCollection = new ArrayCollection(myBigArrayCollection.toArray().slice(page_low,page_high));
(до сих пор с помощью фильтра является более элегантным решением)
Вы можете «спрятать» элементы с дисплея в классе на основе списка, не изменяя исходные исходные данные, используя класс Collection, такой как ArrayCollection, и фильтрацию данных.
Прочтите эти docs on Collection filtering.
процитировать:
Вы можете использовать функцию фильтра, чтобы ограничить представление данных в коллекции подмножество исходного объекта данных. Функция должна принимать один параметр Object, который соответствует элементу коллекции, и должен вернуть логическое значение, определяющее, включать ли элемент в вид . Как и при сортировке, когда вы указываете или изменяете функцию фильтра, , вы должны вызвать метод refresh() в коллекции, чтобы показать результаты фильтрации . Для того, чтобы ограничить представление коллекции из массива строк в содержать только строки, начинающиеся с M, например, использовать следующую функцию фильтра:
public function stateFilterFunc(item:Object):Boolean
{
return item >= "M" && item < "N";
}
ему спасибо за комментарий. Тем не менее, я хочу фильтровать элементы на основе их позиций. В определенном виде я хочу показать первые 20, а другой вид, который я хочу показать всем из них. Могу ли я фильтровать на основе этого? – Rui
@Rui Я не знаю, что означает «Фильтр, основанный на их положениях». Если вы можете определить его; вы можете его закодировать. Используете ли вы один и тот же dataProvider для двух отдельных списков? – JeffryHouser
Я уже фильтрую элементы по дате. В одном государстве я хочу, чтобы мой список представлял первые 20 пунктов, в другом государстве я хочу показать их все. – Rui