Kendo Grid - 编辑一个单元格并更新选定的单元格

时间:2018-05-09 13:46:11

标签: angular kendo-ui kendo-grid kendo-ui-angular2

目前我在可编辑模式下使用Kendo Grid,我想从网格列中选择多个单元格,如果我在最后选择的单元格中进行更改,则最后更改的值应设置为所有选定的单元格。

我不确定是否可能。

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

你需要做一些事情来完成这项工作

    • 可选:' multiple,cell'
    • editable:true
    • 工具栏:["创建","保存","取消"](如果是远程数据)
    • 更改事件处理程序以存储所选单元格并将其中一个置于编辑模式
    • 保存事件处理程序以将已编辑的值传播到选定的单元格
    • keydown事件处理程序,用于检测输入密钥作为编辑保存操作
  • 数据源
    • 批处理模式(如果是远程数据)

对于手指过度活动,可能会出现一些奇怪的边缘情况。

查看此dojo,其中包含以下编码:

包含在配置选项中内联编码的事件处理程序的网格

change: function (e) {
  selected = (this.select().length > 1) ? this.select() : null;
  if (selected) {
    this.editCell($(selected[selected.length-1]));
  }
},
save: function (e) {
  if (e.values) {
    for (var field in e.values) {
      // propogate edited field value to each selected
      for (var i=0; i<selected.length; i++) {
        var uid = $(selected[i]).closest("tr").data("uid");
        var model = this.dataSource.getByUid(uid);
        model.set(field,e.values[field]);
      }

      // should be only one field
      break;
    }
  }
},

并输入密钥检测

$("#grid tbody").on("keydown", "tr", function (e) {
    var grid = $("#grid").data("kendoGrid");

    //get the pressed key code
    var code = (e.keyCode ? e.keyCode : e.which);
    if (code == 13) { //Enter keycode
        $(e.srcElement).closest("tbody").focus();
        setTimeout(function () {
            grid.saveRow();
        })
    }
});