2010-10-27 36 views
1

我正在使用dojox.grid.DataGrid来显示数据并允许用户选择一个或多个行来突出显示项目以执行其他操作。dojox.grid.DataGrid - 排序和分页时维护行选择

我的问题是,网格使用索引记住选定的行。如果我打开了clientSort,排序行使行更改顺序,但选择更改为现在在排序前占用选择索引的行。

为了解决这个问题,我在每次选择更改时获取选定行的项目,然后当发生onSort事件时,我对所选项目集合中的每个项目使用getItemIndex(item)以获取新行索引, - 选择使用这些索引。

现在,我的问题是,DataGrid一次加载数据一定数量的行(它使用术语页来定义一定数量的行)来提高性能。当发生排序时,它会按照新的排序顺序重新载入数据,但只能到rowsPerPage值(默认为40)。当我尝试使用getItemIndex的项目的新行没有被加载到网格中时,它返回并且索引为-1。一旦用户向下滚动并加载行,getItemIndex()函数仅返回索引。

我无法找到发生页面加载时触发的事件,以尝试恢复选择。我浏览了1.3.2源代码并找不到任何东西。我试图连接到一些私人功能,但没有工作。

有没有人遇到过这个,并找到了解决办法?

在此先感谢。

回答

0

我找到了答案。 dojox.grid.DataGrid有一个私人事件(_onFetchComplete),每当下一页请求时触发。我使用setTimeout在300的持续时间后运行我的恢复功能。

工作完成!