3

我在使用 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);

它工作正常(放置新数据)。问题是当我有很多行并且我向下滚动时,我的网格会刷新并且我的滚动会出现在顶部网格上。如何解决这个问题?

4

2 回答 2

2

当然,您正在完全清除存储并从头开始每秒重置它。当您重置商店时,您基本上重置了网格。我希望当您刷新其存储时,网格会重置滚动位置。

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

如何刷新数据网格

如果你正确地使用dojo,你会得到很好的结果,但是如果只是走捷径并尝试每秒刷新一次商店,你会得到一个无法使用的网格。

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

于 2011-04-11T11:11:27.710 回答
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 语句来帮助处理逻辑。

于 2013-01-04T17:34:18.580 回答