【问题标题】:Is there a way to force a single row refresh with SlickGrid?有没有办法使用 SlickGrid 强制刷新单行?
【发布时间】:2012-11-04 14:32:42
【问题描述】:

我将惊人的SlickGrid 配置为异步访问数据并将用户更改异步发布回服务器。一般来说,服务器可能会根据用户的更改修改一行的几个字段。因此,在更新行后,我希望 SlickGrid 仅刷新该行而不更改视图的其余部分。

有人知道怎么做吗?

在我的例子中,服务器上更改的字段是与由数据库触发器更新的记录相关联的时间戳。如果时间戳已过期,则用户拥有旧的数据副本,如果他们提交更改,则可能会覆盖新副本。由于我找不到触发刷新的方法,用户无法在不刷新浏览器窗口(强制完全刷新)的情况下修改自己的更改。

【问题讨论】:

    标签: slickgrid


    【解决方案1】:

    您应该可以使用grid.invalidateRow() 和grid.render() 执行此操作。 SlickGrid 将重新渲染受影响的行(假设它们显示在当前可见的视口中)而不刷新整个页面。

    // Mark row 42 as changed and re-render the display
    grid.invalidateRow(42);
    grid.render();
    

    例如,查看SlickGrid Example 14。 (单击开始模拟按钮查看它的实际效果)

    【讨论】:

      【解决方案2】:
      function updateSlickgrid() {
          dataView.setItems(tableName); 
          grid.invalidate();
      }
      

      注意:tableName可以是数组或id等。 我更喜欢将所有 slickgrid 数据存储在 array ex tableName = [];

      在 slickgrid 中显示数据时继续使用上述功能

      【讨论】:

        猜你喜欢
        • 2016-01-11
        • 2014-06-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多