我有一个具有可编辑日期字段的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网址,这似乎让Dojo稍微开心一点,但仍然使用GET
代替{{ 1}}并且实际上没有发送任何东西来保存。
更新(2013年1月5日):在调用PUT之前,JsonRest有没有理由调用GET?我想知道我的程序是否需要在程序愿意进行PUT之前返回某些数据(因此问题不是GET,而是下一步的问题)......但是,这完全是猜测。我走到了尽头。
答案 0 :(得分:0)
我不确定这是否有效,你可以查看https://github.com/SitePen/dgrid/blob/master/test/JsonRest.html
window.grid = new (declare([Grid, Selection, Keyboard]))({
store: testStore,
getBeforePut: false,
columns: columns
}, "grid");
您可以尝试将属性getBeforePut
设置为false
。