【问题标题】:Dojo scroll problem with DataGridDataGrid 的 Dojo 滚动问题
【发布时间】:2011-08-02 20:53:41
【问题描述】:
我在使用 DataGrid 的 DOJO 中遇到问题。我使用此代码每 1 秒刷新一次网格
window.store_data_log= new dojo.data.ItemFileReadStore({data:{items:temp}});
var grid = dijit.byId("grid_log");
grid.setStore(window.store_data_log);
它工作正常(放入新数据)。问题是当我有很多行并且我向下滚动时,我的网格会刷新并且我的滚动会出现在顶部网格上。如何解决?
【问题讨论】:
标签:
dojo
dojox.grid
dojox.grid.datagrid
【解决方案1】:
当然,您正在完全清除存储并从头开始每秒重置它。当您重置商店时,您基本上重置了网格。当您刷新其存储时,我希望网格会重置滚动位置。
您可能想了解如何正确使用商店,而不仅仅是尝试重置它。我在这里回答了这个问题:
How to refresh datagrid
如果你正确使用dojo,你会得到很好的结果,但是如果你只是走捷径并尝试每秒刷新一次商店,你会得到一个无法使用的网格。
您需要退后一步解决您的应用程序架构,不要指望网格刷新是某种神奇的解决方案。
【解决方案2】:
通过(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 语句来帮助处理逻辑。