在我的Flex项目中,我有一个服务函数getItems(),它返回一个Item对象的集合/数组。
函数运行SQL语句,如SELECT * FROM table。因此,我不想使用SELECT COUNT SQL语句。
我知道,如果我使用Flex spark:DataGrid,我可以很容易地获得数据网格的长度来知道行数(在我的情况下,这将是我的getItems()函数返回的对象的数量)。但是,我使用的是mx:AdvancedDataGrid,并且不可能通过与spark:DataGrid相同的方法获得长度。
实际上,我需要动态地创建一组text={ItemName}的标签。使用Vbox和for循环,我可以创建一个标签列表。现在,我有一个随机数作为for循环中的分隔符。我只需要获得getItems()函数返回的对象数量。然后我可以把这个数字放入for循环中,任务就完成了。
至少,我计划这样做。
有更好的方法吗?
PS:我已经广泛地谷歌,但我找不到任何工作的例子,我想做什么。
欢迎提出建议,StackOverflow非常棒!
[EDIT]我最终使用mx:Repeater来完成上面描述的任务。
这个怎么样:
private function getItemsResultHandler(event:ResultEvent):void
{
var items:ArrayCollection = new ArrayCollection();
items = event.result as ArrayCollection;
trace(items.length);
}
我错过了什么吗?这对你有用吗?
var list:IList = getItems();
trace(list.length)
ArrayCollection继承了ListCollectionView的长度属性。这是你需要的吗?
你可以直接做
getItemsResult.lastResult.length
或
(getItemsResult.lastResult as ArrayCollection).length
或
ArrayCollection(getItemsResult.lastResult).length