我将惊人的SlickGrid配置为异步访问数据并将用户更改异步发送回服务器。一般而言,服务器可以基于用户的改变来修改行的几个字段。因此,在更新行之后,我希望SlickGrid只刷新该行而不更改视图的其余部分。
有谁知道怎么做?
在我的例子中,服务器上更改的字段是与数据库触发器更新的记录关联的时间戳。如果时间戳已过期,则用户具有旧的数据副本,如果他们提交更改,则可能会覆盖新副本。由于我找不到触发刷新的方法,因此用户无法在不刷新浏览器窗口的情况下修改自己的更改(强制完全刷新)。
答案 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中显示数据时,请继续使用上述功能