0

タイプ Odata を使用するデータソースで Kendo Grid を使用しています。データソースからデータベースに新しい行を作成する際に問題があります。これは私のデータソースコードです:

var ds = new kendo.data.DataSource({
            type: "odata",
            transport: {
                read: {
                    url: baseUrl,
                    dataType: "json"
                },
                update: {
                    url: function (data) {
                        return baseUrl + "('" + data.ID_Agenzia + "')";
                    }
                },
                create: {
                    url: baseUrl
                },
                destroy: {
                    url: function (data) {
                        return baseUrl + "('" + data.ID_Agenzia + "')";
                    }
                }
            },
            schema: {
                model: {
                    id: "ID_Agenzia",
                    fields: {
                        ID_Agenzia: { type: "string" },
                       // etc... my other fields omitted for brevity.
                    }
                }
            },
            pageSize: 20,
            serverPaging: true,
            serverFiltering: true,
            serverSorting: true
        });

次に、この DS を使用して、自動ツールバーの作成 (かなり標準的で、コードを省略できると思います) で単純なグリッドを試しました。

私の知る限り、Kendo は Create/Update を識別するメソッド「isNew」を取得し、ID がデフォルト値に対して === であるかどうかをチェックします。私がグーグルで見つけたすべての例は、IDを数値の増分値として使用していました...しかし、私のテーブルでは、IDはユーザーが挿入する必要がある文字列(明らかに一意)です!!

ユーザーが ID を挿入した場合、データソースはそれが作成操作であることを認識しません。それ以外の場合、ID の手動挿入を禁止すると、作成は機能します。 . しかし、行はデフォルト値 (空の文字列) で DB に挿入されますが、これは間違っています!

どうすればこれを解決できますか? ありがとう。

[編集] 追加情報: Kendo-ui と Odata 2.0 の最新バージョンを使用しています

4

0 に答える 0