我有一个绑定到本地数据源的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,
}
});
})();
谢谢!
答案 0 :(得分:0)
您需要为数据源包含一个模式,该模式指定哪个属性是每个项的ID。在你的情况下,这恰好也称为“id”,所以添加:
dataSource: {
data: gridData,
schema: {
model: { id: "id" }
}
}
然后,网格将正确跟踪并保留您保存的更改。