【问题标题】: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 语句来帮助处理逻辑。

      【讨论】:

        猜你喜欢
        • 2011-11-05
        • 2011-08-20
        • 2017-04-13
        • 2012-08-03
        • 2016-09-07
        • 2012-03-29
        • 2012-07-29
        • 2010-11-15
        • 1970-01-01
        相关资源
        最近更新 更多