2010-10-27 14 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的持續時間後運行我的恢復功能。

工作完成!