jqGrid - таблица не заполняется данными из запроса json - PullRequest
0 голосов
/ 09 февраля 2010

Я пытаюсь отобразить сетку с помощью jqGrid. Кажется, все работает нормально. Таблица обрабатывается, но все ячейки пусты. Все остальные данные находятся в таблице (номер страницы, общее количество страниц, количество строк). При попытке изменить страницу данные json извлекаются без проблем.

Вот фрагмент моего кода:

<script type="text/javascript">
$(document).ready(function() {
  $("#list2").jqGrid({
      url:'/ajax/list/facture',
      datatype: "json",          
      colModel:[
       {label:'N° d\'article', name: 'code', width:90},
       {label:'Article', name: 'article', width:100},
       {label:'Entrepôt', name: 'entrepot', width:80, align:"right"},
       {label:'Limite', name: 'limite', width:80, align:"right"},
       {label:'À commander', name: 'qte_a_commander', width:80,align:"right"},
       {label:'Déjà commander', name: 'qte_deja_commander', width:150},
       {label:'Coût', name: 'cout', width:150},
       {label:'Prix', name: 'prix', width:150},
       {label:'Coût total', name: 'cout_total', width:150}
      ],
      rowNum:100,
      scoll: true,
      //rowList:[10,20,30],
      pager: '#pager2',
      //sortname: 'code',
      viewrecords: true,
      sortorder: "desc",
      jsonReader: {
        repeatitems : false,
        id: "0"
      },
      //sortorder: "desc",
      caption:"Inventaire",

      width: 1200,
      height: 200


  });

  $("#list2").jqGrid('navGrid','#pager2',{edit:false,add:false,del:false});


 });


</script>

<table id="list2"></table>
<div id="pager2"></div>

Мои данные JSON отправляются:

{
  "page":"1",
  "total":33,
  "records":"100",
  "rows":[
    {"id":1,"cell":{"code":"0064NB","article":"Livre","entrepot":"4","limite":"3","qte_a_commander":"3","qte_deja_commander":"0","cout":"3.40","prix":"30.99","cout_total":"13.60"}},
    {"id":2,"cell":{"code":"0072NB","article":"Livre et corrig\u00e9","entrepot":"5","limite":"3","qte_a_commander":"3","qte_deja_commander":"0","cout":"3.40","prix":"30.99","cout_total":"17.00"}}
    /*[... got over 100 fields ...]*/
  ]}  

Ответы [ 2 ]

1 голос
/ 10 февраля 2010

Ну, смог заставить его работать, используя индекс вместо имен

  colModel:[
   {label:'Code', index: 'code', width:90},
   {label:'Article', index: 'article', width:100},
   {label:'Entrepôt', index: 'entrepot', width:80, align:"right"},
   {label:'Limite', index: 'limite', width:80, align:"right"},
   {label:'À commander', index: 'qte_a_commander', width:80,align:"right"},
   {label:'Déjà commander', index: 'qte_deja_commander', width:150},
   {label:'Coût', index: 'cout', width:150},
   {label:'Prix', index: 'prix', width:150},
   {label:'Coût total', index: 'cout_total', width:150}
  ],

И не называя мои данные JSON:

{
  "page":"1",
  "total":33,
  "records":"100",
  "rows":
    [
      {"id":1,"cell":["0064NB","Livre","4","3","3","0","3.40","30.99","13.60"]},
      {"id":2,"cell":["0072NB","Livre corrig\u00e9","5","3","3","0","3.40","30.99","17.00"]}
    ]
}
1 голос
/ 09 февраля 2010

Я не думаю, что это правильный формат. JSONReader, который вы определили, ожидает данные JSON, подобные этим

{
  "page":"1",
  "total":33,
  "records":"100",
  "rows":[
    {"id":1,"code":"0064NB","article":"Livre","entrepot":"4","limite":"3","qte_a_commander":"3","qte_deja_commander":"0","cout":"3.40","prix":"30.99","cout_total":"13.60"},
    {"id":2,"code":"0072NB","article":"Livre et corrig\u00e9","entrepot":"5","limite":"3","qte_a_commander":"3","qte_deja_commander":"0","cout":"3.40","prix":"30.99","cout_total":"17.00"}
    /*[... got over 100 fields ...]*/
  ]}

Прочтите главу о получении данных в вики jqGrid . На самом деле я обнаружил, что проще изменить вывод JSON на стороне сервера вместо определения специального считывателя для jQGrid.

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