我遇到了一个我无法解决的问题。
请先看一下这张图片
如您所见,我已经能够从服务器请求JSON数据。寻呼机显示有4条记录。但记录没有显示在表格中。
这是我的javascript代码
jQuery("#pickFlex66").jqGrid({
url: root + '<?=$mod?>' + '/listpicker',
datatype: "json",
altRows: true,
mtype: 'POST',
colNames:['Code','Company Name'],
colModel:[
{name:'company_code',index:'company_code', width:100},
{name:'company_name',index:'company_name', width:100}
],
rowNum:10,
width: 540,
height: 310,
rowList:[10,20,30],
pager: '#pagerFlex66',
sortname: 'company_code',
shrinkToFit: false,
viewrecords: true,
sortorder: "desc",
caption:"<?=lang("users_title")?>",
onSelectRow: function(id){
}
});
jQuery("#pickFlex66").jqGrid('navGrid','#pagerFlex66',{edit:false,add:false,del:false,search:false});
这是我的JSON数据
{
"page": "1",
"total": 0,
"records": "4",
"rows": [{"id":"5","cell":["55-123","123"]},{"id":"3","cell":["123","IBM"]},{"id":"2","cell":["00000","BDO"]},{"id":"1","cell":["000-00","IT GROUP Inc "]}]
}
我的javascript中有错吗?或者也许在我的JSON数据中?
答案 0 :(得分:1)
我同意Briguy37的观点,"total": 0
值很奇怪而且原因不正确。不过jqGrid应该显示所有数据。
我认为您在代码中未发布的部分存在问题。如何从the demo看到您发布的代码可以读取并显示JSON数据。
答案 1 :(得分:0)
这里有几个问题......但是还没弄清楚为什么你的结果还没有填充,但是:
返回的JSON中的 Total
应该是页数。因为它设置为0
,所以它显示为0
。此外,如果您更改每页的结果数,您可能希望将rowCount
作为10返回。
答案 2 :(得分:0)
你缺少一个json阅读器,我遇到了完全相同的问题。
$("#list").jqGrid({
url : "my-json-table-action' />",
datatype: 'json',
jsonReader: {
root: 'gridModel',
id: 'idTT',
repeatitems: false,
},
resize: false,
hidegrid: false,
data: 'trabajosTerminales',
mtype: 'POST',
height: 'auto',
colNames:['No. de Registro', 'Título', 'Tipo', 'Periodo'],
colModel :[
{name:'numRegistro', index:'titulo', search: 'true', stype:'text', align:'center' searchrules:{required:true}, width:100 },
{name:'titulo', key:'true', index:'titulo', search: 'true', stype:'text', searchrules:{required:true}, width:800 },
{name:'tipo', key:'true', index:'tipo', search: 'true', stype:'text',align:'center', searchrules:{required:true}, width:100 },
{name:'periodo', key:'true', index:'titulo', search: 'true', stype:'text', searchrules:{required:true}, width:100 },
],
pager: '#pager',
rowNum:10,
rowList:[10,20,30],
viewrecords: true,
gridview: true,
caption: 'Trabajos Terminales dirigidos',
});
jQuery("#list").navGrid('#pager',{edit:false,add:false,del:false});
});
如果根元素是包含数据的数组,在这种情况下我将数据返回到名为“gridModel”的数组中,则不需要id。但是你必须确保正确设置根元素,在你的情况下它被称为'rows'而不是'gridModel'。