2012-03-09 2 views
0

Можно ли определить свойство, чтобы ограничить количество элементов, которые будут отображаться в списке mx: List? Я читал об установке свойства rowCount, но я не вижу никакого эффекта. Может ли фильтр применяться для этого? Мое намерение состояло в том, чтобы избежать удаления элементов из коллекции list/array, а просто «скрыть» их. Это можно сделать?Ограничение числа листов Flex Список элементов

ответ

1

Другой вариант заключается в использовании нового 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)); 

(до сих пор с помощью фильтра является более элегантным решением)

2

Вы можете «спрятать» элементы с дисплея в классе на основе списка, не изменяя исходные исходные данные, используя класс Collection, такой как ArrayCollection, и фильтрацию данных.

Прочтите эти docs on Collection filtering.

процитировать:

Вы можете использовать функцию фильтра, чтобы ограничить представление данных в коллекции подмножество исходного объекта данных. Функция должна принимать один параметр Object, который соответствует элементу коллекции, и должен вернуть логическое значение, определяющее, включать ли элемент в вид . Как и при сортировке, когда вы указываете или изменяете функцию фильтра, , вы должны вызвать метод refresh() в коллекции, чтобы показать результаты фильтрации . Для того, чтобы ограничить представление коллекции из массива строк в содержать только строки, начинающиеся с M, например, использовать следующую функцию фильтра:

public function stateFilterFunc(item:Object):Boolean 
{ 
    return item >= "M" && item < "N"; 
} 
+0

ему спасибо за комментарий. Тем не менее, я хочу фильтровать элементы на основе их позиций. В определенном виде я хочу показать первые 20, а другой вид, который я хочу показать всем из них. Могу ли я фильтровать на основе этого? – Rui

+0

@Rui Я не знаю, что означает «Фильтр, основанный на их положениях». Если вы можете определить его; вы можете его закодировать. Используете ли вы один и тот же dataProvider для двух отдельных списков? – JeffryHouser

+0

Я уже фильтрую элементы по дате. В одном государстве я хочу, чтобы мой список представлял первые 20 пунктов, в другом государстве я хочу показать их все. – Rui

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