过滤高级数据网格后如何计算行数?

时间:2014-04-29 07:39:40

标签: actionscript-3 flex advanceddatagrid

我正在尝试计算高级数据网格中的行数 我需要一个可以使用或不使用filterFunction计算所有项目的函数。

我尝试了一些解决方案但没有效果。我找到的最好的是扩展所有项目并使用光标进行循环 但是,当我们拥有大量数据时,扩展所有数据并不是一个好的解决方案。

你对如何做到这一点有所了解吗?

谢谢

1 个答案:

答案 0 :(得分:1)

我出现的唯一方法是调查dataProvider

// current not expanded data row lenght
grid.dataProvider.lenght;

// expanded length
// I assume you use xml as your data provider
// then you can count it like this
xmlListTotalSize(new XMLList(grid.dataProvider.source.source));
// or with casts
xmlListTotalSize(new XMLList((IHierarchicalCollectionView(view.grid.dataProvider).source as HierarchicalData).source));

和xmllist遍历函数可能如下所示:

private static function xmlListTotalSize(x:XMLList):int
{
    var i:int = x.length();
    for each(var xChild:XML in x.children())
        i += xmlListTotalSize(xChild.children());
    return i;
}