Dojo滚动问题与DataGrid

时间:2011-04-11 08:02:10

标签: dojo dojox.grid dojox.grid.datagrid

我在DOJO中遇到DataGrid问题。我使用此代码每隔1秒刷新一次网格

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

它工作正常(放入新数据)。问题是当我有很多行并且我向下滚动时,我的网格刷新并且我的滚动进入顶部网格。怎么解决这个问题?

2 个答案:

答案 0 :(得分:2)

当然,您完全清理商店并从头开始每秒重置一次。重置商店时,基本上重置了网格。当你刷新它的商店时,我希望网格能够重置滚动位置。

您可能想了解如何正确使用商店,而不仅仅是尝试重置商店。我在这里回答:

How to refresh datagrid

如果您正确使用dojo,您将获得良好的结果,但只需使用快捷方式并尝试每秒刷新一次商店,您将获得无法使用的网格。

您需要退一步解决您的应用程序架构,而不要指望网格刷新是某种神奇的解决方案。

答案 1 :(得分:0)

在浏览(dojo)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.isRender设置为false。请记住某些情况(比如在新列上排序),最好将其设置为true。只需添加一些if / else语句来帮助理解逻辑。