Apache flex 如何从Actionscript getter函数中查找返回的对象数?
在我的Flex项目中,我有一个服务函数getItems(),它返回一个Item对象的集合/数组 该函数运行一条SQL语句,如SELECT*FROM table。因此,我不想使用SELECT COUNT SQL语句 我知道,如果我使用Flex spark:DataGrid,我可以很容易地获得DataGrid的长度,从而知道行数(在我的例子中,行数就是getItems()函数返回的对象数)。但是,我使用的是mx:AdvancedDataGrid,不可能通过与spark:DataGrid相同的方法获得长度 实际上,我需要用text={ItemName}动态创建一组标签。使用Vbox和for循环,我能够创建标签列表。目前,在for循环中,分隔符有一个随机数。我只需要获取getItems()函数返回的对象数。然后我可以把这个数字放进for循环,工作就完成了 至少,我计划这样做 有更好的方法吗 PS:我在谷歌上搜索了很多,但是我找不到任何我想做的工作的例子 欢迎提出建议,StackOverflow非常棒Apache flex 如何从Actionscript getter函数中查找返回的对象数?,apache-flex,actionscript-3,for-loop,label,vbox,Apache Flex,Actionscript 3,For Loop,Label,Vbox,在我的Flex项目中,我有一个服务函数getItems(),它返回一个Item对象的集合/数组 该函数运行一条SQL语句,如SELECT*FROM table。因此,我不想使用SELECT COUNT SQL语句 我知道,如果我使用Flex spark:DataGrid,我可以很容易地获得DataGrid的长度,从而知道行数(在我的例子中,行数就是getItems()函数返回的对象数)。但是,我使用的是mx:AdvancedDataGrid,不可能通过与spark:DataGrid相同的方法获得
[编辑]我最终使用了mx:Repeater来完成上述任务。我遗漏了什么吗?这对你有用吗
var list:IList = getItems();
trace(list.length)
ArrayCollection具有从ListCollectionView继承的长度属性。这就是你需要的吗?这个怎么样:
private function getItemsResultHandler(event:ResultEvent):void
{
var items:ArrayCollection = new ArrayCollection();
items = event.result as ArrayCollection;
trace(items.length);
}
你可以简单地做
getItemsResult.lastResult.length
或
或
基本上都是一样的。太棒了!这使我避免了再次调用getItems()函数。但是,我仍然通过创建ArrayCollection来消耗一些物理内存。例如,是否有方法获取getItemsResult.lastResult的长度?我无法从内容辅助菜单中获取lastResult属性的.length。第一个属性不起作用。我正在使用适用于PHP4.5(Flex4)的Flash Builder,但我没有获得getItemsResult的lastResult属性的.length属性。您使用的是哪个版本的Flex SDK?上下文辅助可能无法检测该属性,因为在编译时,您不知道getItemsResult.lastResult将是什么。它将是您的服务返回的任何内容。在这种情况下,因为您知道它将是ArrayCollection,所以第一个将在运行时工作,您不应该得到编译错误。您是否遇到运行时错误?如果是,请发布错误。感谢您的输入。每个人都有同样的问题:我最终使用了一个mx:Repeater来完成这项工作。
(getItemsResult.lastResult as ArrayCollection).length
ArrayCollection(getItemsResult.lastResult).length