我创建的JsonRest商店如下所示
var questionBaseURL = "/" + contextName + "/service/questions/" + projectId + "/";
var questionStore = new dojo.store.JsonRest({
target: questionBaseURL,
handleAs: 'json',
idProperty: 'questionId'
});
questionStore = new dojo.store.Observable(questionStore);
var memoryStore = new dojo.store.Memory();
var questionCacheStore = new dojo.store.Cache(questionStore, memoryStore);
我用它来渲染到如下创建的网格
var CustomGrid = declare([OnDemandGrid, Keyboard, Selection]);
var questionGrid = new CustomGrid({
store: questionCacheStore,
columns: [
editor({
label: "Questions",
field: "question",
editor: "text",
editOn: "dblclick",
sortable: true,
autoSave:true
})
],
selectionMode: "single",
cellNavigation: false
}, "questions");
questionGrid.startup();
questionGrid.renderArray(questionArray);
数据已在网格中正确填充。现在,由于我使用“编辑器”,我可以编辑网格中的填充数据。我不确定如何检测数据是否已被编辑(脏数据)以及调用哪种方法将更新的数据传回服务器。我找不到任何简单的文档。所以任何帮助都表示赞赏。提前致谢
答案 0 :(得分:0)
您可以使用网格的save
方法将带有脏数据的所有项目推送回服务器。还有一个revert
方法,可以调用它来丢弃任何脏数据。这些列在OnDemandList and OnDemandGrid documentation。
这些方法在dgrid/_StoreMixin
中定义,由OnDemandList
(和OnDemandGrid
)继承。 editor
列插件在进行更改时调用updateDirty
(也由_StoreMixin
定义),更新dirty
哈希。 save
将检查此哈希并在商店中为每个脏项调用put
。