我正在构建一个小型应用程序。我有一个PHP代码,里面创建了jqGrid,还有一个servlet,它发送一个内部有JSON的数组的字符串。
字符串如下:
[
{"id":1,"firstName":"Amishay","lastName":"Vaturi"},
{"id":2,"firstName":"Amir","lastName":"Bilu"},
{"id":3,"firstName":"Michael","lastName":"Keidar"},
{"id":4,"firstName":"Mika","lastName":"Spivak"},
{"id":5,"firstName":"Ksenia","lastName":"Mosorov"},
{"id":6,"firstName":"Rose","lastName":"Wahlem"}
]
问题是我在我制作的网格中看不到它。。。网格代码是这样的:
$("#jqGrid").jqGrid({
url: 'http://10.0.0.4:8080/api/students/all',
mtype: "GET",
datatype: "jsonstring",
colModel: [
{ label: 'ID', name: 'id', key: true, width: 75 , height: 50 },
{ label: 'First Name', name: 'firstName', width: 150 , height: 50},
{ label: 'Last Name', name: 'lastName', width: 150 , height: 50}
],
viewrecords: true,
width: 780,
height: 250,
rowNum: 20,
pager: "#jqGridPager"
});
我在这里和整个网络中寻找答案。我发现我可能需要从服务器发送一个不同的json。也许有更多的信息,比如记录、页数等。我还看到我可能需要在jqGrid属性中声明一个json读取器。我两者都做了。。还是没用。就好像我没有找到一个能100%解决我问题的解决方案。我会很高兴得到一个有效的答案(:
非常感谢!
代码中的错误是使用了datatype: "jsonstring"
而不是
datatype: "json"
顺便说一下,您不需要创建隐藏列id
,因为jqGrid将id
属性的值分配给行的id
属性(<tr>
元素)。此外,我建议您使用loadonce: true
选项,因为您使用的数据格式并不意味着服务器端分页。
我创建了演示https://jsfiddle.net/OlegKi/oc7uuh9q/,它使用您的数据来证明所有这些都应该起作用。我只是稍微修改了一下您的代码,以使用我开发的免费jqGrid中实现的新功能,jqGrid是jqGrid的分支。