刚刚开始使用dojo/JsonRest,但是在发送更新回我的服务器时有一些问题。我有两个问题,我卡住了;
下面的代码生成一个网格,其中一列设置为可编辑。我的json数据中的主键是"jobName"属性(因此在JsonRest存储中的idAttribute)。
第一个问题是关于PUT中的URI;-当我调用dataStore.save()服务器得到一个PUT,但URI是/myrestservice/Jobs/0.9877865987(它每次都改变,但总是一个浮点数)-我不知道道场从哪里得到浮点数?这不是我那一行的idAttribute值。我怎样才能让PUT尊重JsonRest存储中的idAttribute ?-我确实尝试在MemoryStore中设置idProperty为"jobName",但这将PUT更改为POST并删除了浮动,但我仍然没有在URI中获得jobName,这是我的REST服务器需要的。
关于PUT内容的第二个问题;—PUT包含整行。我只想要idAttribute和改变的数据,这可能吗?
我已经看过了示例和文档,但是没有很多处理JsonRest的PUT/POST部分的示例。
感谢 var userMemoryStore = new dojo.store.Memory( );
var userJsonRestStore = new dojo.store.JsonRest({target:"/myrestservice/Jobs/", idAttribute:"jobName"});
var jsonStore = new dojo.store.Cache(userJsonRestStore, userMemoryStore);
var dataStore = new dojo.data.ObjectStore( {objectStore: jsonStore } );
/*create a new grid*/
var grid = new dojox.grid.DataGrid({
id: 'grid'
,store: dataStore
,structure: layout
,rowSelector: '20px'}
,"gridDiv");
grid.startup();
dojo.query("#save").onclick(function() {
dataStore.save();
});
我认为你想要idProperty
,而不是idAttribute
。它也可能有助于设置idProperty
在内存存储被用来缓存;这可能就是产生随机浮点数的原因。
至于第二个问题,这可能需要定制;我不相信OOTB存储(或网格)通常期望发送部分项目。