5

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

有谁知道如何做到这一点?

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

4

2 回答 2

6

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

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

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

于 2012-11-19T10:52:13.820 回答
0
function updateSlickgrid() {
    dataView.setItems(tableName); 
    grid.invalidate();
}

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

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

于 2016-07-17T17:23:01.287 回答