Можно ли определить свойство для ограничения количества элементов, которые будут отображаться в mx:List? Я читал об установке свойства rowCount, но не вижу никакого эффекта. Можно ли для этого применить фильтр? Мое намерение состояло в том, чтобы не удалять элементы из коллекции списка/массива, а просто «скрыть» их. Можно ли это сделать?
Flex List ограничивает количество элементов
Ответы (2)
Другой вариант — использовать новую коллекцию массивов и получить ограниченные элементы из большой коллекции массивов:
//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, и фильтруя данные.
Прочитайте эти документы по фильтрации коллекций.
Цитировать:
Вы используете функцию фильтра, чтобы ограничить представление данных в коллекции подмножеством исходного объекта данных. Функция должна принимать один параметр Object, соответствующий элементу коллекции, и должна возвращать логическое значение, указывающее, следует ли включать элемент в представление. Как и при сортировке, когда вы указываете или изменяете функцию фильтра, вы должны вызвать метод refresh() для коллекции, чтобы отобразить отфильтрованные результаты. Чтобы ограничить представление коллекции массива строк, чтобы оно содержало только строки, начинающиеся, например, с буквы M, используйте следующую функцию фильтра:
public function stateFilterFunc(item:Object):Boolean
{
return item >= "M" && item < "N";
}