2013-02-15 2 views
0

나는 Jquery에 매우 익숙하다. 따라서이 점에 대해 도움을 필요로한다.jqgrid json url not working

JSON URL과 함께 jqGrid를 사용하려고하지만 사용할 수 없습니다. htm 페이지에 데이터가 표시되지 않습니다.

$(function() { 
    "use strict"; 
    $('#list').jqGrid({ 
     datatype: 'json', 
     url: 'json_url', 
     caption: 'Prospect Finder', 
     gridview: true, 
     height: "auto", 
     colNames: ['Partner','First Name', 'Last Name', 'Organization'], 
     colModel: [ 
      {name: 'PARTNER', jsonmap: 'PARTNER' }, 
      {name: 'NAME_FIRST',jsonmap: 'NAME_FIRST' }, 
      {name: 'NAME_LAST', jsonmap: 'NAME_LAST' }, 
      {name: 'NAME_ORG1', jsonmap: 'NAME_ORG1' } 
     ], 
     jsonReader: { 
      repeatitems: false, 
      id: "PARTNER", 
      root: function (obj) { 
       return obj; 
      } 
     } 
    }); 
}); 

는 그리고 이것은 내 JSON 데이터

{"itab":[ { "PARTNER":"0061000220", "NAME_FIRST":"", "NAME_LAST":"", "NAME_ORG1":"GTA Central" }, { "PARTNER":"0061000221", "NAME_FIRST":"", "NAME_LAST":"", "NAME_ORG1":"GTA West" }, { "PARTNER":"0061000222", "NAME_FIRST":"", "NAME_LAST":"", "NAME_ORG1":"GTA East" }, { "PARTNER":"0041000141", "NAME_FIRST":"", "NAME_LAST":"", "NAME_ORG1":"Office Systems" } ]} 

누군가 PLZ 도와 줄 수있다?

감사합니다. DJ

+0

당신은 여분이 쉼표를 여기''NAME_ORG1 '},'<- –

+0

json 데이터를 jqgrid에 어떻게 제공하고 있습니까? 확실하지 않지만 하드 코딩 된 "url : json_url"이 범인이라고 생각합니다. – gaurav

+0

@wirey : 추가 쉼표가 제거되었지만 문제가 계속 발생합니다. – user1596433

답변

1

을 당신이 필요 단지 jsonReaderroot 속성을 수정 root: "itab". 또한 rowNum에 충분히 큰 값 (예 : rowNum: 10000)을 포함시키는 것이 중요합니다. 이것을하지 않고 pager을 사용하지 않으면 jqGrid는 서버 응답의 처음 20 행만 표시하며 (기본값은 rowNum이고 기본값은 20) 다른 모든 행을 무시합니다.

The demo

그것은 다음과 같은 코드를 사용하는 JSON을 성공적으로 데이터를 표시

enter image description here

을 읽을

$(function() { 
    "use strict"; 
    $('#list').jqGrid({ 
     datatype: 'json', 
     url: 'user1596433.json', 
     caption: 'Prospect Finder', 
     gridview: true, 
     height: "auto", 
     colNames: ['Partner','First Name', 'Last Name', 'Organization'], 
     colModel: [ 
      {name: 'PARTNER', width: 80 }, 
      {name: 'NAME_FIRST' }, 
      {name: 'NAME_LAST' }, 
      {name: 'NAME_ORG1', width: 100 } 
     ], 
     jsonReader: { 
      repeatitems: false, 
      id: "PARTNER", 
      root: "itab" 
     }, 
     rowNum: 10000, 
     autoencode: true, 
     loadonce: true 
    }); 
}); 
0

문서를 살펴보십시오. http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data#json_data json이 올바르게 설정되지 않았습니다. 이 기본 형식입니다

{ 
     "total": "xxx", 
     "page": "yyy", 
     "records": "zzz", 
     "rows" : [ 
     {"id" :"1", "cell" :["cell11", "cell12", "cell13"]}, 
     {"id" :"2", "cell":["cell21", "cell22", "cell23"]}, 
      ... 
     ] 
    } 

참조 (당신은 그것을 대체 할 수 있습니다하지만 당신은 여전히 ​​아이디, 총 페이지와 기록을 제공 할 필요가있다)

jsonReader: { 
    repeatitems: false, 
    id: "Id", 
    root: function (obj) { return obj.itab; }, 
    page: function (obj) { return 1; }, 
    total: function (obj) { return 1; }, 
    records: function (obj) { return obj.itab.length; } 
} 
0

내 경험이 있습니다 :

표는 그것을 의미하는로드에 붙어 URL에서 가져 오기를 시도했지만 처리 할 수 ​​없습니다.

{"page":1,"YOUR_ROW_NAME":[{"YOUR_ID":"14","YOUR_CELL_NAME":["ImageHeight"]}]} 

:

그때 내 JSON 기본 jsonReader와 호환되지 않는 것을 깨달았다, 솔루션은 하나가

1.set jsonReader이

예를 들어 JSON 데이터 당신의 JSON 데이터와 호환되도록하는 것입니다 자바 스크립트에 다음을 추가하십시오 (다른 키 (즉, 페이지)도 무시할 수 있음)

jsonReader : { 
     root: "YOUR_ROW_NAME", 
     cell: "YOUR_CELL_NAME", 
     id: "YOUR_ID", 
}, 

2.carefully 사용 기본 jsonReader, "행", 'ID', 대괄호 안에 '세포'를 사용한다 [] 인코딩 데이터

foreach($all as $row){ 
    $response->rows[$i]['id']=$row->id; 
    $response->rows[$i]['cell']=array($row->id,$row->name,$row->url); 
    $i++; 
} 

유용한 스타터 위키 동안 : http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data#json_data