0

刚开始使用 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 并删除了浮动,但我仍然没有在 URI 中获得我的 REST 服务器需要的 jobName。

第二个关于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();
                });
4

1 回答 1

1

我想你想要idProperty,不是idAttribute。它也可能有助于设置idProperty用于缓存的内存存储;这可能是产生随机浮动的原因。

至于第二个问题,那可能需要定制;我不相信 OOTB 商店(或网格)通常期望发送部分商品。

于 2014-08-01T02:14:56.197 回答