1

我使用jqGrid v4.4.5。当网格为空时,显示'Page 1 of 0'。我读了这个答案 ,但我的问题没有解决。我的httphandler发送这个json结果

"{\"page\":0,\"records\":0,\"rows\":[],\"total\":0,\"userdata\":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,
    });

在此处输入图像描述

4

2 回答 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";
    }
}

请参阅演示

于 2013-07-22T11:39:58.630 回答
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"];

                        }
                    }
于 2013-07-22T10:42:06.790 回答