我使用jqGrid v4.4.5。当网格为空时,显示“第1页,共0页”。我读了这个答案 但我的问题没有解决。我的httphandler发送这个json结果
"{\"页\":0,\"记录\":0,\"行\":[],\"总计\":0,\"用户数据\":null}"
gridParaf = $("#gridParaf").jqGrid(
{
url:"GetLetterInformationHandler.ashx?CurrentUser=" + 1457,
datatype: 'json',
width: $("#contentParaf").width() + 410,
height: $("#contentParaf").height() - 20,
direction: "rtl",
colNames: ['IAnsDateTime', 'IAnsState'],
colModel: [
{ name: 'IAnsDateTime', width: 50, sortable: false, hidden: false, template: CenterTemplate },
{ name: 'IAnsState', width: 20, sortable: false, hidden: false, template: CenterTemplate },
],
rowNum: 20,
loadonce: true,
rowList: [5, 10, 20],
recordpos: "left",
ignoreCase: true,
toppager: true,
viewrecords: true,
sortorder: "desc",
scrollOffset: 1,
editurl: 'clientArray',
shrinkToFit: true,
jsonReader:
{
repeatitems: false,
},
gridview: true,
});
我认为正确的 JSON 响应是
{"page":0,"records":0,"rows":[],"total":0,"userdata":null}
调试器会以格式显示响应
"{\"page\":0,\"records\":0,\"rows\":[],\"total\":0,\"userdata\":null}"
在这种情况下,您可以尝试使用以下
jsonReader
jsonReader: {
repeatitems: false,
page: function (obj) {
return obj.page !== undefined && obj.page !== 0 ? obj.page : "0";
}
}
希望它能解决您的问题。请参阅答案了解更多信息。
更新:因为您使用
loadonce: true
,所以您应该以相同的方式定义jsonReader
和localReader
jsonReader: {
page: function (obj) {
return obj.page !== undefined && obj.page !== 0 ? obj.page : "0";
}
},
localReader: {
page: function (obj) {
return obj.page !== undefined && obj.page !== 0 ? obj.page : "0";
}
}
参见 演示。
更改你的 jsonReader:像这样并尝试
jsonReader: { repeatitems: false, root: function (obj) {
var JSONObject = JSON.parse(obj);
return JSONObject["rows"];
}, page: function (obj) {
var JSONObject = JSON.parse(obj);
return JSONObject["page"];
}, total: function (obj) {
var JSONObject = JSON.parse(obj);
return JSONObject["total"];
},
records: function (obj) {
var JSONObject = JSON.parse(obj);
return JSONObject["records"];
}
}