使用保存按钮更新Slickgrid dataview行?

问题描述 投票:0回答:1

我有一个包含多个列的数据视图,其中2个是可编辑的,传入的JSON数据绑定到此。我最后还有一个带有保存按钮的列。

如果编辑了这两个字段并单击了保存按钮,我想获取此行中的值,包括这些已编辑字段中的2个新值。目前,当我单击“保存”按钮时,该行仅包含原始值,而不包含更新的值。

我想我遗漏了一些基本的slickgrids,我是否需要首先保存这一行才能使新值可以访问?我已经尝试了github文档中的一些内置方法,但无法使其工作。

例如。单击单元格时:

if (col.id == 'saved'){console.log(row)}

比较旧行和新行以查看是否存在差异的最终目标,有人可以解释一下我需要在这做什么吗?谢谢

javascript slickgrid
1个回答
0
投票

这些值由单个单元格编辑器applyValue方法保存到行中,例如:

this.applyValue = function (item, state) {
  item[args.column.field] = state;
};

诀窍是编辑器只在退出时提交值。这意味着如果单击其他列中的“保存”按钮,则可能无法触发编辑器,并且可能无法保存上一个仍处于活动状态的编辑器中的值(如果触发了新编辑器,则会提交任何活动编辑器值) 。 在这种情况下,打电话

grid.getEditorLock().commitCurrentEdit()

立即在您的保存功能。

就旧行和新行而言,您可能需要在第一次编辑时以某种方式保存行的副本,以便以后进行比较。真正的客户端多行编辑与行删除和添加是一个复杂的野兽,并不容易驯服。如果可以,最好使用图书馆。

© www.soinside.com 2019 - 2024. All rights reserved.