編集可能な日付フィールドを持つ dgrid があります。その上に、 を呼び出す「保存」ボタンがありますgrid.save
。ボタンを押すと、ストアのターゲットに XHR リクエストが返されますが、保存するデータがサーバーに返されません (つまり、POST は空です)。以下のコードでわかるように、現在、アイテム ID 1900 をクエリするように固定されています。
ストアの開始方法は次のとおりです。
var store = new JsonRest({
target: "/safari/resources/1900/calendarObjects/",
sortParam: "sort",
idProperty: "id",
properties: {
startDate:{
format: "date-time"
},
endDate:{
format: "date-time"
}
}
});
そして、ここにグリッドがあります:
var grid = new declare([OnDemandGrid, dgridEditor, Keyboard, Selection, DijitRegistry])({
store: store,
query: {responseType: "json" },
bufferRows: 40,
loadingMessage: "Loading...",
columns: [
{field: "oid", label: "Object ID"},
dgridEditor({field: "startDate", name: "Start Date", editorArgs: { selector: 'date', datePattern: 'yyyy-MM-dd', locale: 'en-us' }}, DateTextBox),
dgridEditor({field: "startTime", name: "Start Time"}, TimeTextBox, "click"),
dgridEditor({field: "endDate", name: "End Date"}, DateTextBox, "click"),
dgridEditor({field: "endTime", name: "End Time"}, TimeTextBox, "click"),
{field: "endDateOid", label: "End OID"}
],
}, "grid");
保存ボタンは次のようになります。
registry.byId("saveButton").on("click", function (){
grid.save();
});
私が言ったように、「保存」をクリックした後、新しい XHR リクエストが発生しますが、サーバーにデータを送り返している場合、どこに行くのかわかりません。バックエンドに、受信したすべての HTTP ヘッダーを出力させましたが、何も表示されませんでした。
更新 (2013 年 1 月 2 日):サーバー バックエンドをアップグレードして、従来の RESTful URL を使用するようにしましGET
たPUT
。
更新 (2013 年 1 月 5 日): JsonRest が PUT を呼び出す前に GET を呼び出す理由はありますか? プログラムがPUTを実行する前に、プログラムが特定のデータを返す必要があるかどうか疑問に思っています(したがって、問題はGETではなく、次に来るものです)...しかし、これは完全に推測です。私は行き止まりに達しました。