使用自定义项呈示器对datagrid列进行慢速排序

时间:2010-03-03 09:26:46

标签: flex actionscript-3 actionscript flex3

我们有一个包含3列的Flex DataGrid,其中一列有一个自定义内联itemrenderer,它通过Image组件在单元格中呈现一个图标,具体取决于行中的数据。

现在的问题是对此列进行排序非常慢。当我们只有几行数据时,没关系,但只要我们有几百或几千行,我们就会注意到几秒钟的冻结。

有没有人注意到这一点并遇到同样的问题。如果是这样,你有没有找到任何好的解决方案呢?我知道我们可以限制数据提供者中的行数,但我真的在寻找根问题的解决方案。

-

更新:解决方案的一些信息:我们遇到的问题实际上并非由项呈示器引起。由于我们在该列中只有2个不同的值,因此在大型数据集上排序的速度非常慢。解决方案是编写一个自定义比较函数,并将一些其他属性附加到比较的值,以使其更加清晰。

1 个答案:

答案 0 :(得分:4)

我还没有看到这个项目渲染器,但我确实看到当列中的数据非常相似时排序变慢。例如,在我的Census benchmark app中,Gender列的排序比Id列慢得多。有一个known bug有一个解决方法。

如果这不是问题,您只需要优化项呈示器。查看默认DataGridItemRenderer的代码,以查看优化良好的渲染器的示例。