jqGrid с выводом JSON [объект 0bject] - PullRequest
0 голосов
/ 16 февраля 2011

Я столкнулся с проблемой с jqGrid и данными JSON.В основном сетка не будет отображать какие-либо данные, но вместо этого выводит [объект объекта] в первый столбец таблицы.Ниже приведен фрагмент данных, которые я использую.Это действительно 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'}
            ]
    }
    );
});

Чего мне не хватает?

1 Ответ

0 голосов
/ 16 февраля 2011

Прежде всего, я бы не рекомендовал использовать «uid = AndrewBryant» в качестве значения id.Вы должны понимать, что это следует за <tr id="uid=AndrewBryant">, что действительно плохо.См. здесь для описания правильных идентификаторов.

Далее вы можете прочитать файл 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'}
]

после изменений будет отображаться сетка: см. здесь .

Тем не менее, я бы порекомендовал вам лучше внести некоторые изменения на серверекодировать и производить более стандартный JSON, который можно читать без jsonmap.См. документацию jqGrid .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...