Kendo UI Grid:如果我进行更改并保存它们,我仍然可以在之后取消它们。如何锁定它们?

时间:2016-04-20 07:35:57

标签: javascript kendo-ui kendo-ui-grid

我有一个绑定到本地数据源的Kendo UI Grid。如果我进行了一些更改并单击"保存更改",然后单击"取消更改",则回滚更改。我希望他们能够被锁定在"因为我救了他们。

此外,如果我进行更改,保存,进行其他更改,再次保存并最终取消,则会回滚这两个更改。

请参阅UPDATED小提琴,问题和解决方案: http://jsfiddle.net/q24ennne/7/

我的HTML:

<div id="grid"></div>

我的JavaScript:

window.gridData = [
{ id: 1, text: "Uno" }, 
{ id: 2, text: "Dos" }, 
{ id: 3, text: "Tres" }, 
{ id: 14, text: "Catorce" }, 
];

(function() {
    $('#grid').kendoGrid({
      toolbar: ["save", "cancel"],
      editable: true,
      saveChanges: function(e) {
        gridData = $('#grid').getKendoGrid().dataSource.data();
        $('#grid').getKendoGrid().refresh();
        console.log("gridData:");
        console.log(gridData);
      },
      columns: [{
        field: "text",
        title: "No."
      }],
      dataSource: {
        data: gridData,
      }
    });
})();

谢谢!

1 个答案:

答案 0 :(得分:0)

您需要为数据源包含一个模式,该模式指定哪个属性是每个项的ID。在你的情况下,这恰好也称为“id”,所以添加:

dataSource: {
  data: gridData,
  schema: {
    model: { id: "id" }
  }
}

然后,网格将正确跟踪并保留您保存的更改。