jqGrid呈现空表

我一直在尝试使用jqGrid 4.1.2渲染表,我能够从服务器端获取JSON响应,但我得到空表。 inheritance我的样本JSON数据:

{ "response":{ "total":2, "page":1, "rows":[{ "id":135060, "cell":{ "id":135060, "name":"12" } }, { "id":115060, "cell":{ "id":115060, "name":"12345" } } ] }, "status":"SUCCESS", "errors":[] } 

我添加了jqgrid-locale-en.js文件,因此不应该是问题。 花了一些时间在这之后我觉得它与jqGrid预期的JSON格式有关,如果那是问题,有人可以告诉我如何配置jqGrid接受上面的JSON格式。

谢谢!

对于问题仍未解决的情况,这里是解决方案。 您应该使用以下jsonReader

 jsonReader : { repeatitems : false, root: 'response.rows', page: 'response.page', total: 'response.page', records: function (obj) { return obj.response.rows.length; } } 

然后将读取数据(参见演示 )。 我想您在JSON数据中使用了不正确的total属性,而根本没有设置records属性。

此外,您不应在标准响应中设置错误消息。 HTTP协议支持状态代码 。 如果您在服务器端检测到错误,则服务器应在HTTP标头中设置错误HTTP代码 。 如果jqGrid中的数据处理顺序采用另一种方式 ,您应该使用loadError事件来解码错误消息并显示用户的结果。

默认情况下,jqGrid不希望单元格键中的数据包含name:value pairings。 如果要使用name:value pairings,那么您需要查看使用jsonReader选项并将repeatitems设置为false。 还要确保每个键的名称与相应的colModel名称完全相同。

没有更多的代码很难说。 你应该在提出这样的问题时发布你的所有代码,但尝试这样的事情以及你正在设置的其他任何选项……

 $("#id").jqGrid({ url: "url" mtype: "post", datatype: "json", jsonReader: { repeatitems: false, root: "response.rows", cell: "cell", id: "id", page: "page", total: "total", records: "records" }, }); 

看起来您没有传回记录密钥,也就是服务器端调用返回的总行数