【发布时间】:2011-05-01 09:26:50
【问题描述】:
我正在使用 dojox.grid.DataGrid 来显示数据并允许用户选择一行或多行来突出显示要执行其他操作的项目。
我的问题是网格使用索引来记住选定的行。如果我打开了 clientSort,对行进行排序会使行更改顺序,但选择会更改为现在在排序之前占据选择索引的行。
为了解决这个问题,我在每次选择更改时获取所选行的项目,然后当 onSort 事件发生时,我在所选项目集合中的每个项目上使用 getItemIndex(item) 来获取新的行索引,然后我重新使用这些索引进行选择。
现在,我的问题是 DataGrid 一次加载数据一定数量的行(它使用术语页面来定义一组行数)以提高性能。当发生排序时,它会以新的排序顺序重新加载数据,但最多只能达到 rowsPerPage 值(默认值为 40)。当我尝试将 getItemIndex 用于其新行尚未加载到网格中的项目时,它会返回 -1 的索引。 getItemIndex() 函数仅在用户向下滚动并加载行时返回索引。
我找不到在页面加载发生以尝试恢复选择时触发的事件。我浏览了 1.3.2 的源代码,找不到任何东西。我已尝试连接到许多私有函数,但均无济于事。
有没有人遇到过这个问题并找到了解决办法?
提前致谢。
【问题讨论】: