Как узнать количество возвращаемых объектов из функции получателя Actionscript? - PullRequest
0 голосов
/ 20 июля 2011

В моем проекте Flex у меня есть сервисная функция getItems (), которая возвращает мне коллекцию / массив объектов Item.

Функция выполняет оператор SQL, такой как SELECT * FROM table. Поэтому я не хочу использовать SQL-оператор SELECT COUNT.

Я знаю, что если я использую Flex spark: DataGrid, я могу легко получить длину сетки данных, чтобы узнать количество строк (которое в моем случае будет количеством объектов, возвращаемых моей функцией getItems ()) , Однако я использую mx: AdvancedDataGrid, и невозможно получить длину теми же способами, что и в spark: DataGrid.

На самом деле мне нужно динамически создать набор меток с текстом = {ItemName}. Используя Vbox и цикл for, я могу создать список меток. На данный момент у меня есть случайное число для разделителя в цикле for. Мне просто нужно получить количество объектов, возвращаемых моей функцией getItems (). Затем я могу поместить это число в цикл for, и работа завершена.

По крайней мере, так я планирую выполнить эту задачу.

Есть ли лучший способ сделать это?

PS: Я много гуглил, но не смог найти ни одного рабочего примера того, что я хочу сделать.

Предложения приветствуются, а StackOverflow невероятен!

[РЕДАКТИРОВАТЬ] Я в конечном итоге использовал mx: Repeater для выполнения задачи, описанной выше.

Ответы [ 4 ]

0 голосов
/ 21 июля 2011

Вы можете просто сделать

getItemsResult.lastResult.length 

или

(getItemsResult.lastResult as ArrayCollection).length

или

ArrayCollection(getItemsResult.lastResult).length

Все по сути одинаковы.

0 голосов
/ 20 июля 2011

ArrayCollection имеет атрибут длины, унаследованный от ListCollectionView.Это то, что вам нужно?

0 голосов
/ 21 июля 2011

как насчет этого:

private function getItemsResultHandler(event:ResultEvent):void
{
    var items:ArrayCollection = new ArrayCollection();
    items = event.result as ArrayCollection;

    trace(items.length);
}
0 голосов
/ 20 июля 2011

Я что-то упустил?Это работает для вас?

var list:IList = getItems();
trace(list.length)
...