0

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();
                }
            }
        }
4

1 に答える 1

4

Kendo UI チームは、JayDataでライブラリを使用してデータソースの構成を簡素化する方法に関するブログ投稿を公開しました。うまくいけば、それはあなたを助けます。

于 2013-03-28T12:02:06.047 に答える