我有一个具有可编辑日期字段的 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,这似乎让 Dojo 稍微更快乐,但它仍然在使用GET
而不是PUT
实际发送任何内容以保存。
更新(2013 年 1 月 5 日): JsonRest 有什么理由会在调用 PUT 之前调用 GET 吗?我想知道我的程序是否需要在程序愿意执行 PUT 之前返回某些数据(因此问题不在于 GET 而是接下来发生的任何事情)......但是,这完全是猜测。我已经走到了死胡同。