jqgrid 空 json 数据

问题描述 投票:0回答:2

我使用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,
    });

enter image description here

pagination jqgrid
2个回答
2
投票

我认为正确的 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";
    }
}

参见 演示


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"];

                        }
                    }
© www.soinside.com 2019 - 2024. All rights reserved.