我是jqgrid的新手,我正在尝试使用json加载数据。我曾尝试使用jqgrid演示作为基础,然后从那里构建。 json数据看起来不错,但我无法将任何内容加载到网格中。有任何想法吗?我希望使用loaderror或loadcomplete至少可以让我深入了解,但我无法检索为什么网格无法加载的任何消息。
json数据:
{
"page": "1",
"total": 1,
"records": "12",
"rows": [
[
"67",
"3 - Sandbox: Appointment Set"
],
[
"68",
"1 - Sandbox: Email requested"
],
[
"69",
"2 - Sandbox: Questions not answered"
],
[
"74",
"1 - TenPointSix: Email requested for more information"
],
[
"75",
"2 - TenPointSix: Registered for webinar2"
],
[
"76",
"3 - TenPointSix: Webinar registration confirmed"
],
[
"93",
"5-Test Entry"
],
[
"94",
"test3"
],
[
"95",
"test2"
],
[
"97",
"Jeff"
],
[
"103",
"sortorder"
],
[
"106",
"reload"
]
]
}
我的网格代码:
<table id="jsonmap"></table>
<div id="pjmap"></div>
<script language="JavaScript" type="text/javascript">
jQuery("#jsonmap").jqGrid({
url:'sampleLoad.php?client=<?=$clientId5?>',
datatype: "json",
ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
colNames:['Inv No','Name'],
colModel:[
{name:'id',index:'id', width:55},
{name:'name',index:'name', width:100}
],
rowNum:15,
rowList:[15,30,45],
pager: '#pjmap',
sortname: 'id',
viewrecords: true,
sortorder: "asc",
jsonReader: {
root: "Rows",
cell: "",
page: "Page",
total: "Total",
records: "Records",
repeatitems: false,
id: "0"
},
loadComplete: function() {
alert("Load Complete");
},
loadError: function(xhr,st,err) { $("#jsonmapMessage").html("Type: "+st+"; Response: "+ xhr.status + " "+xhr.statusText); },
caption: "JSON Mapping",
width: '900',
height: '300'
});
jQuery("#jsonmap").jqGrid('navGrid','#pjmap',{edit:true,add:false,del:false});
任何帮助都将不胜感激。
谢谢,
杰夫
答案 0 :(得分:2)
问题是您使用的jsonReader
错误。例如,您在JSON数据中使用rows
,但使用root: "Rows"
。数据格式对应默认repeatitems: true
属性,但您使用repeatitems: false
等等。
正确的jsonReader
是
jsonReader: {
cell: "",
id: "0"
}
此外,我建议您添加gridview: true
并使用height: 'auto'
代替height: '300'
,这样可以简化height
的设置。
The demo显示修改。