2011-04-11 144 views
3

我在使用DataGrid的DOJO中遇到問題。我用此代碼每隔1秒刷新一次網格。DataGrid的Dojo滾動問題

window.store_data_log= new dojo.data.ItemFileReadStore({data:{items:temp}}); 
var grid = dijit.byId("grid_log"); 
grid.setStore(window.store_data_log); 

它工作正常(放入新數據)。問題是,當我有很多行,我向下滾動,我的網格刷新,我的滾動進入頂部網格。如何解決這個問題?

回答

2

當然,你完全清理商店並從頭開始重新設置它。當您重置商店時,您基本上重置網格。當你刷新它的商店時,我希望沒有什麼比重新設置滾動位置的網格更容易。

您可能想了解如何正確使用商店,而不是僅嘗試重置商店。我在這裏回答了這個:

How to refresh datagrid

如果你使用正確的道場,你會得到很好的效果,但只是走了一條捷徑,並試圖刷新店裏每一秒,你會得到一個無法使用的網格。

您需要退後一步並解決您的應用程序體系結構,而不是期望網格刷新成爲某種魔術解決方案。

0

通過(道場)datagrid.js去後,我發現如何解決這個問題:

//datastore you're using// 
var store = new dojox.data.QueryReadStore({ 
    //in the fetch()// 
    fetch: function (request){ 
     //add the following:// 
     request.isRender = false; 
    } 
}); 

重要說明:只有設置request.isRenderfalse,當你不希望電網回滾動到頂部。請記住,在某些情況下(如在新列上排序),最好將其設置爲true。只需添加一些if/else語句來幫助邏輯。