Javascript Dojo增强型数据网格未填充JsonRest存储

Javascript Dojo增强型数据网格未填充JsonRest存储,javascript,json,datagrid,dojo,Javascript,Json,Datagrid,Dojo,我的Datagrid未填充存储 我的rest调用返回以下内容: {“在线用户”:[],“离线用户”:[“123.456.7.890:8080”] 我在日志中看到: [对象] 我也看到了这一点: [18:12:57.822]不推荐使用getAttributeNode()。改用getAttribute()。@ 我做错了什么?那是因为您的数据结构错误。我想您想创建一个网格,其中每个主机/地址列为网格中的一行 存储的数据结构应该是一个对象数组。您使用字符串数组定义了一个对象,这与所需的结构不兼容。有关R

我的Datagrid未填充存储

我的rest调用返回以下内容: {“在线用户”:[],“离线用户”:[“123.456.7.890:8080”]

我在日志中看到: [对象]

我也看到了这一点: [18:12:57.822]不推荐使用getAttributeNode()。改用getAttribute()。@


我做错了什么?

那是因为您的数据结构错误。我想您想创建一个网格,其中每个主机/地址列为网格中的一行

存储的数据结构应该是一个对象数组。您使用字符串数组定义了一个对象,这与所需的结构不兼容。有关REST服务应实现的格式的更多信息,请访问

你有三个选择:

  • 更改RESTfulWebService,以Dojo能够处理的方式返回数据
  • 编写自己的存储实现
  • 通过手动定义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});
    
    然后可以将网格的
    结构
    属性更改为:

    [
        {name: "Offline Users", field: "host", width: "100px"}
    ]
    
    我还对上面的示例做了一个简化,您可以看到

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