刚刚开始使用dojo / JsonRest,但是在将更新发送回我的服务器时遇到了一些问题。我有2个问题,我坚持不懈;
下面的代码生成一个网格,其中一列设置为可编辑。 我的json数据中的主键是“jobName”属性(因此JsonRest存储中的idAttribute)。
第一个问题是关于PUT中的URI; - 当我调用dataStore.save()时,服务器得到一个PUT,但URI是/myrestservice/Jobs/0.9877865987(它每次都会改变,但总是浮动) - 我没看到dojo从哪里得到浮点数?它不是该行的idAttribute值。如何让PUT尊重JsonRest存储中的idAttribute? - 我尝试将MemoryStore中的idProperty设置为“jobName”,但是将PUT更改为POST并删除了float,但我仍然没有在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();
});
答案 0 :(得分:1)
我认为您需要idProperty
,而不是idAttribute
。它也可能有助于在用于缓存的内存存储中设置idProperty
;这可能是产生随机浮点数的原因。
至于第二个问题,那可能需要定制;我不相信OOTB商店(或网格)通常会发送部分商品。