我正在使用本地存儲作爲基於Kendo代碼庫樣本的數據存儲的應用程序。我們目前正在計劃使用數據源中的函數來操縱數據。你可以在下面看到我們的代碼的一部分。 我有一個工作示例http://jsfiddle.net/photo_tom/fL5UC/2/。Kendo Grid沒有正確更新顯示
var dataSource = new kendo.data.DataSource({
transport: {
create: function (options) {
var localData = JSON.parse(localStorage["grid_data"]);
localData.push(options.data);
localStorage["grid_data"] = JSON.stringify(localData);
options.success(localData);
},
read: function (options) {
var localData = JSON.parse(localStorage["grid_data"]);
options.success(localData);
},
update: function (options) {
var localData = JSON.parse(localStorage["grid_data"]);
for (var i = 0; i < localData.length; i++) {
if (localData[i].ID == options.data.ID) {
localData[i].Value = options.data.Value;
}
}
localStorage["grid_data"] = JSON.stringify(localData);
options.success(localData);
console.log("On update");
console.log(localData);
},
destroy: function (options) {
var localData = JSON.parse(localStorage["grid_data"]);
localData.remove(options.data.ID);
localStorage["grid_data"] = JSON.stringify(localData);
options.success(localData);
}
要看到問題:
- 點擊 「添加新記錄」。新記錄將作爲網格中的第一條記錄出現
- 在ID列中輸入一個數字,並在值列中輸入任何文本。
- 點擊「保存更改」按鈕。
- 什麼是原來的第一行,將覆蓋新添加的行
- 如果你點擊的jsfiddle運行按鈕,則數據將正確顯示。
我是新來的使用這些網格,我沒有看到是什麼導致問題。