0

在我的 Flex 项目中,我有一个服务函数 getItems(),它返回一个 Item 对象的集合/数组。

该函数运行类似 SELECT * FROM 表的 SQL 语句。因此,我不想使用 SELECT COUNT SQL 语句。

我知道,如果我使用 Flex spark:DataGrid,我可以轻松获得数据网格的长度以了解行数(在我的情况下,这将是我的 getItems() 函数返回的对象数)。但是,我使用的是 mx:AdvancedDataGrid,无法通过与 spark:DataGrid 相同的方式获取长度。

实际上,我需要动态创建一组带有 text={ItemName} 的标签。使用 Vbox 和 for 循环,我可以创建标签列表。目前,我的 for 循环中的分隔符有一个随机数。我只需要获取我的 getItems() 函数返回的对象数。然后我可以将该数字放入 for 循环中,工作就完成了。

至少,这是我计划完成这项任务的方式。

有一个更好的方法吗?

PS:我已经广泛搜索,但我找不到任何我想做的工作示例。

欢迎提出建议,StackOverflow 非常棒!

[编辑] 我最终使用了 mx:Repeater 来完成上述任务。

4

4 回答 4

0

这个怎么样:

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

    trace(items.length);
}
于 2011-07-20T21:41:12.213 回答
0

你可以简单地做

getItemsResult.lastResult.length 

或者

(getItemsResult.lastResult as ArrayCollection).length

或者

ArrayCollection(getItemsResult.lastResult).length

基本上都是一样的。

于 2011-07-21T04:31:50.230 回答
0

我错过了什么吗?这对你有用吗?

var list:IList = getItems();
trace(list.length)
于 2011-07-20T19:00:16.080 回答
0

ArrayCollection 有一个继承自 ListCollectionView 的长度属性。这是你需要的吗?

于 2011-07-20T19:00:46.883 回答