我想加载一个jqGrid表,其中包含我从velocity生成的json String;这些是表格参数:
var gridParams = {
datatype: "jsonstring",
data: content,
pager: $('#pagernav'),
rowNum: 5000,
rownumbers: true,
rowList: [50,100,200,500,1000,2000],
ignoreCase: true,
colNames: columns,
colModel: tableColModel,
}
在控制台上打印时,内容和列的值为:
[{"ID":"7", "fname":"Bob", "addr":"18" }, {"ID":"8", "fname":"Sue" }]
["ID", "fname", "addr"]
确实网格是用正确的列创建的,但它是空的......我写的是什么问题?谢谢你的回答。
答案 0 :(得分:4)
首先,如果以错误的方式使用jqGrid,则datatype: "jsonstring"
的使用率为90%。您没有更详细地描述原始问题,但我建议您考虑使用datatype: "json"
代替datatype: "jsonstring"
。
如果您确实需要使用datatype: "jsonstring"
,那么您应该使用datastr
option而不是data
的{{1}}选项来提供输入数据。
来自datatype: "local"
的数据是否真的是JSON字符串(content
),或者您将数据作为对象(typeof content === "string"
)?在我看来,最好在您的情况typeof content === "string"
或datatype: "local", data: content
而不是使用datatype: "local", data: $.parseJSON(content)
中使用,因为输入数据的格式不是datatype: "jsonstring", datastr: content,
所需的标准格式(请参阅the documentation)因此,为了能够成功读取数据,您必须提供相应的datatype: "jsonstring"
(请参阅here示例)
我建议您使用jsonReader
选项,将gridview: true
替换为pager: $('#pagernav')
,并为pager: '#pagernav'
列定义key: true
属性。此外,您应始终在问题文本中包含'ID'
。 colModel
的文字朝向代码colModel: tableColModel
的方向 - 如果没有显示必需的详细信息,这对于找到您的问题的解决方案非常重要。