有没有办法用SlickGrid强制单行刷新?

时间:2012-11-15 21:53:22

标签: slickgrid

我将惊人的SlickGrid配置为异步访问数据并将用户更改异步发送回服务器。一般而言,服务器可以基于用户的改变来修改行的几个字段。因此,在更新行之后,我希望SlickGrid只刷新该行而不更改视图的其余部分。

有谁知道怎么做?

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

2 个答案:

答案 0 :(得分:6)

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

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

有关示例,请查看SlickGrid Example 14。 (单击开始模拟按钮以查看其中的操作)

答案 1 :(得分:0)

function updateSlickgrid() {
    dataView.setItems(tableName); 
    grid.invalidate();
}

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

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