kendo-grid - 剑道网格 saveChanges() 不起作用

标签 kendo-grid

我正在尝试使用自定义命令按钮设置行的状态字段。网格数据源传输定义如下:

transport: {
  read: {
    url: "/agent/AgentList",
    type: "POST",
    dataType: "json",
    data: addAntiForgeryToken
  },
  update: {
    url: "/agent/UpdateAgent",
    type: "POST",
    dataType: "json",
    data: addAntiForgeryToken
  }
},

自定义命令定义如下:

{
  command: [
    {
      name: "accept",
      visible: function(dataItem) {
        return dataItem.StatusId === 1;
      },
      text: "@T("Ralfeus.Agent.Accept")",
      click: function(e) {setOfferResponse(this, e, 2);}
    }
  ]
}

实际设置字段的函数定义如下:

function setOfferResponse(grid, sender, response) {
  sender.preventDefault();
  var dataItem = grid.dataItem($(sender.currentTarget).closest("tr"));
  dataItem.StatusId = response;
  grid.editRow($(sender.currentTarget).closest("tr"));
  grid.saveChanges();
}

我希望调用 saveChanges() 来触发数据源传输的更新方法。但是,它既不会向服务器发出任何请求,也不会报告错误。

我还尝试按照建议将 grid.saveChanges() 替换为 grid.dataSource.sync()(顺便一提,有什么区别?)here但结果是一样的:没有 HTTP 请求,没有错误。

最佳答案

好的,找到原因了。以编程方式更改 dataItem 字段不会使它们变脏。所以我不得不把它弄脏:

dataItem.dirty = true;
grid.saveChanges();

然后就成功了

关于kendo-grid - 剑道网格 saveChanges() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42213523/

相关文章:

kendo-grid - Kendo 网格,更改编辑按钮上的文本

css - 如何将字体样式应用于过滤后的列标题?

kendo-ui - 网格中的剑道 DropDownList 验证

javascript - 通过 Javascript 设置 ClientTemplate

javascript - Kendo UI 网格分页不起作用

javascript - 从剑道网格内的剑道颜色选择器更新服务器

javascript - kendo-grid 中的数据在排序时消失

asp.net-mvc - Kendo UI 网格中的自定义命令

jquery - Kendo 仅编辑网格的单列

javascript - 在不触发事件的情况下替换 Kendo ObservableArray 的内容