タイプ 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 の最新バージョンを使用しています