2011-02-16 7 views
0

jqGrid 및 JSON 데이터에 문제가 발생했습니다. 기본적으로 그리드는 데이터를 표시하지 않고 대신 [object Object]를 테이블의 첫 번째 열에 출력합니다. 아래는 스 니펫의 데이터입니다. 유효한 JSON입니다.jqGrid와 JSON 출력 [object 0bject]

$(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'} 
      ] 
    } 
    ); 
}); 

내가 무엇을 놓치고 : 아래

{ 
    "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 기능을 전화를 사용하고 있습니까?

답변

0

먼저 "uid = AndrewBryant"를 id 값으로 사용하지 않는 것이 좋습니다. 당신은 그것이 진짜로 나쁘다 <tr id="uid=AndrewBryant">에 따른다는 것을 이해해야한다. 올바른 ID에 대한 설명은 here을 참조하십시오.

다음으로 현재 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 파일을 읽을 수 있습니다 here 참조 .

그럼에도 불구하고 서버 코드를 약간 변경하고 jsonmap없이 읽을 수있는 더 많은 표준 JSON을 만드는 것이 좋습니다. the jqGrid documentation을 참조하십시오.