jqGrid不显示行,仅显示总行数

时间:2011-08-30 16:32:34

标签: javascript jquery json jqgrid

我遇到了一个我无法解决的问题。

请先看一下这张图片

enter image description here 如您所见,我已经能够从服务器请求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数据中?

3 个答案:

答案 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'。