【问题标题】:Dojo Enhanced Datagrid not populating with JsonRest storeDojo 增强型数据网格未填充 JsonRest 存储
【发布时间】:2013-11-01 01:33:11
【问题描述】:

我的 Datagrid 没有填充商店

我的休息电话返回: {"onlineUsers":[],"offlineUsers":["123.456.7.890:8080"]}

My code:
require([  "dojo/store/JsonRest",
        "dojo/store/Memory",
        "dojo/store/Cache",
        "dojox/grid/EnhancedGrid",
        "dojox/grid/enhanced/plugins/Pagination",
        "dojo/data/ObjectStore",
        "dojo/dom-attr",
        "dojo/domReady!"],
        function(JsonRest, Memory, Cache, EnhancedGrid, Pagination, ObjectStore, domAttr){

        var store = new dojo.store.JsonRest({target:"/Url/rest/onlineusers/all"});

        var dataStore = new dojo.data.ObjectStore({objectStore: store});

        var grid = new EnhancedGrid({
            id: 'grid',
            store: dataStore,
            structure: [
          {name: "Offline Users", field: "offlineUsers", width: "100px"}
        ]
        }, "gridDiv");

            grid.startup();
    });

我在日志中看到了这一点: [对象对象]

我也看到了这个: [18:12:57.822] 不推荐使用 getAttributeNode()。请改用 getAttribute()。 @http://ajax.googleapis.com/ajax/libs/dojo/1.8.4/dojo/dojo.js:146

我做错了什么?

【问题讨论】:

    标签: javascript json datagrid dojo


    【解决方案1】:

    那是因为你的数据结构不对。我想您想创建一个网格,每个主机/地址在网格中列为一行?

    商店的数据结构应该是一个对象数组。您使用字符串数组定义了一个对象,该对象不符合所需的结构。有关您的 REST 服务应实现的格式的更多信息,请访问RFC 2616 document

    你有三个选择:

    1. 更改您的 RESTful Web 服务,以 Dojo 可以处理的方式返回您的数据
    2. 编写您自己的商店实现
    3. 通过手动定义 AJAX 请求并映射对象来手动解析您的数据客户端

    第三种解决方案类似于:

    var data =  {"onlineUsers":[],"offlineUsers":["123.456.7.890:8080"]}; // Retrieve with an AJAX request
    var offlineUsers = array.map(data.offlineUsers, function(user) {
        return {
            host: user  
        };
    });
    var store = new Memory({ data: offlineUsers });
    var dataStore = new ObjectStore({objectStore: store});
    

    然后您可以将网格的structure 属性更改为:

    [
        {name: "Offline Users", field: "host", width: "100px"}
    ]
    

    我还做了一个上面例子的JSFiddle,大家可以看here

    【讨论】:

      猜你喜欢
      • 2013-12-03
      • 1970-01-01
      • 1970-01-01
      • 2011-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-27
      • 1970-01-01
      相关资源
      最近更新 更多