如何查找 Actionscript getter 函数返回的对象的数量?

发布于 2024-11-25 13:15:58 字数 598 浏览 0 评论 0原文

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

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

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

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

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

有更好的方法吗?

PS:我在谷歌上进行了广泛的搜索,但我找不到任何我想做的工作示例。

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

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

In my Flex project, I have a service function getItems() that returns me a collection/array of Item objects.

The function runs an SQL statement like SELECT * FROM table. I therefore do not want to use a SELECT COUNT SQL statement.

I know that if I use a Flex spark:DataGrid, I can easily get the length of the datagrid to know the number of rows (which in my case, would be the number of objects returned by my getItems() function). However, I am using an mx:AdvancedDataGrid and it is not possible to get the length by the same means as with the spark:DataGrid.

Actually, I need to dynamically create a set of labels with text={ItemName}. Using a Vbox and a for loop, I am able to create a list of labels. At the moment, I have a random number for the delimiter in my for loop. I just need to get the number of objects returned by my getItems() function. I can then put that number in the for loop and the job is done.

At least, this is how I plan to do this task.

Is there a better way to do this?

PS: I have Googled extensively, but I could not find any working examples for what I want to do.

Suggestions are welcome and StackOverflow is fabulous!

[EDIT] I eventually used an mx:Repeater to do the task described above.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

爱她像谁 2024-12-02 13:15:58

这个怎么样:

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

    trace(items.length);
}

how about this:

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

    trace(items.length);
}
埋葬我深情 2024-12-02 13:15:58

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

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

Am I missing something? Does this work for you?

var list:IList = getItems();
trace(list.length)
追我者格杀勿论 2024-12-02 13:15:58

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

ArrayCollection has a length attribute inherited from ListCollectionView. Is this what you need?

岁月静好 2024-12-02 13:15:58

您可以简单地执行

getItemsResult.lastResult.length 

(getItemsResult.lastResult as ArrayCollection).length

ArrayCollection(getItemsResult.lastResult).length

所有本质上都是相同的。

You can simply do

getItemsResult.lastResult.length 

or

(getItemsResult.lastResult as ArrayCollection).length

or

ArrayCollection(getItemsResult.lastResult).length

All are essentially the same.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文