kendoui フォーラムに書き込みを試みたところ、バグを報告するために「ライセンスを購入する」という回答が得られたので、kendoGrid 2013.1.319 を使用して同じ問題に直面した人がいるかどうかを尋ねます。「日曜テストアプリ」で使っているので急ぐ必要はありません!
剣道フォーラムでの私の元のメッセージは次のとおりです。
やあ、
剣道グリッドを最新バージョンに更新しましたが、突然、アプリケーションでデータ操作の問題が発生しました。GET、PUT、POST、および DELETE 動詞の要求を正しく受信していますが、グリッドはそのステータスを更新しないため、問題はクライアント側にあるようです。
API サービスを介して ASP.NET MVC 4 OData 実装を使用しています。
例: 2 つの行を削除して保存を押すと、DELETE 呼び出しが行われ、クライアント グリッドは行を非表示にしますが、もう一度保存を押すと、削除が何度も呼び出されます。
更新/作成時に同じ問題が発生し、セルの角が赤いままになり、保存後もデータは最初と同じように送信されます。
dataSource でコールバックを受け取ると、次のことに気付きました。
requestEnd: function (e) {
if (e.type === "update" || e.type === "create") {
// Refresh data after changes
this.read();
}
}
レコードを挿入または更新する場合、e.type は常に未定義です。
これは私のデータソース構成です:
dataSource: {
type: 'odata', // <-- Include OData style params on query string
transport: {
read: {
url: $("#contactsGrid").attr("data-api-crud"),
dataType: "json", // <-- The default is "jsonp".
type: "GET"
},
update: {
url: $("#contactsGrid").attr("data-api-crud"),
dataType: "json", // <-- The default is "jsonp".
type: "POST"
},
create: {
url: $("#contactsGrid").attr("data-api-crud"),
dataType: "json", // <-- The default is "jsonp".
type: "PUT"
},
destroy: {
url: function (data) {
return $("#contactsGrid").attr("data-api-crud") + "/" + data.Id;
},
dataType: "json", // <-- The default is "jsonp".
type: "DELETE"
},
parameterMap: kendo.data.transports.odata.parameterMap
},
schema: {
// The array of repeating data elements (items)
data: "Results",
// The total count of records in the whole dataset. used for paging.
total: "Count",
model: {
id: "Id",
fields: {
Dealer: { type: "string", editable: true },
Address: { type: "string", editable: true }
}
}
},
pageSize: 50,
serverPaging: true,
serverFiltering: true,
serverSorting: true,
requestEnd: function (e) {
if (e.type === "update" || e.type === "create") {
// Refresh data after changes
this.read();
}
}
}