我在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);
它工作正常(放入新数据)。问题是当我有很多行并且我向下滚动时,我的网格刷新并且我的滚动进入顶部网格。怎么解决这个问题?
答案 0 :(得分:2)
当然,您完全清理商店并从头开始每秒重置一次。重置商店时,基本上重置了网格。当你刷新它的商店时,我希望网格能够重置滚动位置。
您可能想了解如何正确使用商店,而不仅仅是尝试重置商店。我在这里回答:
如果您正确使用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语句来帮助理解逻辑。