jqGrid - 表中没有填充来自json请求的数据

时间:2010-02-09 19:59:23

标签: jquery jqgrid

我正在尝试使用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 个答案:

答案 0 :(得分:1)

我不认为这是正确的格式。您定义的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 ...]*/
  ]}

阅读有关retrieving data in the jqGrid wiki的章节。实际上我发现更改服务器端JSON输出更容易,而不是为jQGrid定义自定义阅读器。

答案 1 :(得分:1)

嗯,能够使用索引而不是名称来使其工作

  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"]}
    ]
}