【问题标题】:Slickgrid dataview row update with save button?使用保存按钮更新 Slickgrid 数据视图行?
【发布时间】:2018-03-02 14:07:17
【问题描述】:

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

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

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

例如 单击单元格时:

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

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

【问题讨论】:

    标签: javascript slickgrid


    【解决方案1】:

    通过单个单元格编辑器applyValue方法将值保存到行中,例如:

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

    诀窍是编辑器仅在您退出时提交值。这意味着如果您单击不同列中的“保存”按钮,这可能不会触发编辑器,并且之前仍处于活动状态的编辑器中的值可能不会被保存(如果触发了新的编辑器,则提交任何活动的编辑器值) .
    在这种情况下,调用

    grid.getEditorLock().commitCurrentEdit()
    

    立即在您的保存功能中。

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

    【讨论】:

      猜你喜欢
      • 2017-09-27
      • 1970-01-01
      • 2011-11-02
      • 2011-06-17
      • 1970-01-01
      • 2018-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多