jqgrid空json数据

jqgrid空json数据,jqgrid,paging,Jqgrid,Paging,我正在使用jqGrid v4.4.5。当网格为空时,显示“第1页,共0页”。我阅读 但是我的问题没有解决。我的httphandler发送这个json结果 “{\'page\':0,\'records\':0,\'rows\':[],\'total\':0,\'userdata\':null}” 改变你的jsonReader:像这样试试 jsonReader: { repeatitems: false, root: function (obj) {

我正在使用jqGrid v4.4.5。当网格为空时,显示“第1页,共0页”。我阅读 但是我的问题没有解决。我的httphandler发送这个json结果

“{\'page\':0,\'records\':0,\'rows\':[],\'total\':0,\'userdata\':null}”


改变你的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"];

                        }
                    }

我认为正确的JSON响应是

{“页面”:0,“记录”:0,“行”:[],“总计”:0,“用户数据”:null}
只需调试器以以下格式显示响应

“{\'页面\':0,\'记录\':0,\'行\':[],\'总计\':0,\'用户数据\':null}”
在这种情况下,您可以尝试使用以下
jsonReader

jsonReader:{
重复项:false,
页码:功能(obj){
返回obj.page!==undefined&&obj.page!==0?obj.page:“0”;
}
}
我希望它能解决你的问题。请参阅中的更多信息

已更新:由于使用了
loadonce:true
,因此应以相同的方式定义
jsonReader
localReader

jsonReader:{
页码:功能(obj){
返回obj.page!==undefined&&obj.page!==0?obj.page:“0”;
}
},
本地阅读器:{
页码:功能(obj){
返回obj.page!==undefined&&obj.page!==0?obj.page:“0”;
}
}

请参阅。

坦克但不工作:(.为什么在重新加载网格时,网格会将pageindex=1传递给服务器?我认为我有问题,因为pageindex为1。我计算服务器中的其他信息“total=(Count+0-1)/10”“records=Count”“total=(int)Math.天花((float)objectList.Count/(float)numberOfRows);”@ZSH:您必须在
jsonReader
之外定义
localReader
,因为您使用
loadonce:true
。请参阅我答案的更新部分。我同时定义了jsonReader和localReader,但不起作用,我设置了loadonce:false,但不起作用。如果我在服务器中设置了pageIndex的值,jsonReder中的obj.page将返回我的值({“page”:“1”,“记录”:“0”,“行”:[],“总计”:“0”,“用户数据”:null}),但如果删除pageIndex的值(在json结果中),则总是返回null。我很困惑,不知道该怎么办do@ZSH:抱歉,我不明白您在
pageIndex
下的意思。我也不明白您为什么需要返回
{“page”:“1”,“records”:“0”,“rows”:[],“total”:“0”,“userdata”“:null}
来自服务器。您是否尝试了我答案的更新部分?您的代码与我的代码有什么区别?通常,您可以使用
loadonce:true
,只需将
jsonReader
localReader
定义为函数。函数返回字符串
“0”非常重要”
如果您想显示“0中的第0页”,我会删除json结果中的页面,只添加jsonReader和loadonce:true,现在就可以了:-)
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"];

                        }
                    }