1

編集可能な日付フィールドを持つ 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 を使用するようにしましGETPUT

更新 (2013 年 1 月 5 日): JsonRest が PUT を呼び出す前に GET を呼び出す理由はありますか? プログラムがPUTを実行する前に、プログラムが特定のデータを返す必要があるかどうか疑問に思っています(したがって、問題はGETではなく、次に来るものです)...しかし、これは完全に推測です。私は行き止まりに達しました。

4

1 に答える 1