【发布时间】:2012-03-27 17:33:24
【问题描述】:
在 jqGrid 中显示我的 json 数据时遇到问题。
我在这个论坛上进行了很多搜索,并尝试了各种形式来使其发挥作用。如果这个问题已经得到解答,我深表歉意,但我真的需要这方面的帮助。
在服务器页面上,我只使用 JavaScriptSerializer 发送数据和带有默认参数的 jsonreader 函数(这工作正常)。
我现在需要分页并更改了我的服务器页面代码以使用 sidx、sord、page、rows 参数。
来自服务器的结果字符串如下所示:
{"total":"344","page":"1","records":"8577","root":[{"Id":"1","SerialNumber":"132","Name":"ServerName"},...]}
这是我的 jQuery 代码:
$("#list").jqGrid({
datatype: "json",
mtype: 'GET',
url:'https://server/handlerpage.ashx',
colNames:['Id','SerialNumber','Name'],
colModel :[
{name:'Id', index:'Id', jsonmap:"Id", width:20},
{name:'Name', index:'Name', jsonmap:"Name", width:120},
{name:'SerialNumber', index:'SerialNumber', jsonmap:"SerialNumber", width:100}],
jsonreader: {repeatitems:false,id:'Id',root:'root'},
pager: '#pager',
rowNum:25,
rowList:[25,50,75,100],
sortname: 'Id',
viewrecords:true,
gridview: true,
height:"400",
width:"700",
caption: 'Select from existing server',
loadtext:'Loading, please wait'
}).navGrid("#pager", { edit: false, add: false, search: true, del: false });
【问题讨论】:
-
代码中的主要错误是使用
jsonreader而不是jsonReader。您也可以删除所有jsonmap属性和index。我建议你也不要像'https://server/handlerpage.ashx'那样使用url。对应于 Ajax Same origin policy,您必须使用与当前页面相同的https://server/前缀。所以你最好使用url: 'handlerpage.ashx'或url: '/handlerpage.ashx'。 -
谢谢 Oleg,我测试了 jsonReader(大写 R),它确实有效。还更改了网址以符合政策并且也有效。
-
不客气!有时错误很小(只有一个字母),但因此很难找到。
标签: jqgrid jsonreader