【问题标题】:jqGrid with JSON outputting [object 0bject]带有 JSON 输出的 jqGrid [object 0bject]
【发布时间】:2011-02-16 11:13:20
【问题描述】:

我遇到了jqGrid 和 JSON 数据的问题。基本上网格不会显示任何数据,而是将 [object Object] 输出到表格的第一列。下面是我正在使用的数据的 sn-p。它是有效的 JSON。

{
    "currpage": "1",
    "totalpages": "3",
    "totalrecords": "70",
    "rows": [
    {
        "id": "uid\u003dAndrewBryant",
        "cells": [
            {
                "HOURS_ENTITLED": "203",
                "HOURS_TAKEN": 0,
                "NAME": "uid\u003dAndrewBryant",
                "SICKNESS_TAKEN": 0,
                "TAKEN_TOIL": 0,
                "TOTAL_TOIL": 0,
                "YEAR_ENTILEMENT": "2011"
            }
        ]
    },

下面是我用来调用 jqGrid 功能的代码:

$(document).ready(function() {
    $("#statsTable").jqGrid({
        url: "http://cw-epuip-d01.tm-gnet.com:10040/wps/PA_Resource_Manager_1/JSONServlet",
        datatype: "json",
        mtype: "get",
        jsonReader : {
            root: "rows",
            cell:"cells",
            page: "currpage",
              total: "totalpages",
              records: "totalrecords",
               id: "id"
        },
        colNames: ['NAME', 'HOURS ENTITLED', 'HOURS TAKEN'  ],
        colModel: [
                  {name:'NAME', index:'NAME'},
                  {name:'HOURS_ENTITLED', index:'HOURS_ENTITLED'},
                  {name:'HOURS_TAKEN', index:'HOURS_TAKEN'}
            ]
    }
    );
});

我错过了什么?

【问题讨论】:

    标签: jquery jquery-plugins jqgrid


    【解决方案1】:

    首先,我不建议您使用“uid=AndrewBryant”作为id 值。你应该明白它会跟随<tr id="uid=AndrewBryant">,这真的很糟糕。正确 id 的描述见here

    接下来,您可以读取服务器当前生成的 JSON 文件,只需对 jsonReader(附加 repeatitems:false)和每列的附加 jsonmap 属性进行细微更改

    jsonReader : {
        root: "rows",
        page: "currpage",
        total: "totalpages",
        records: "totalrecords",
        repeatitems: false
    },
    colModel: [
              {name:'NAME', index:'NAME',jsonmap:'cells.0.NAME'},
              {name:'HOURS_ENTITLED', index:'HOURS_ENTITLED',
               jsonmap:'cells.0.HOURS_ENTITLED'},
              {name:'HOURS_TAKEN', index:'HOURS_TAKEN',jsonmap:'cells.0.HOURS_TAKEN'}
    ]
    

    更改后将显示网格:请参阅here

    尽管如此,我还是建议您最好对服务器代码进行一些更改,并生成更标准的 JSON,无需jsonmap 即可读取。见the jqGrid documentation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-25
      • 2017-08-02
      • 1970-01-01
      • 2014-06-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多