我使用jqgrid,数据类型为json,值从另一个URL检索,
colModel: [
{ name: "Details", width: 200,classes: 'pointer wrap',sortable: false,
formatter: function myFormatter(cellvalue, options, rowObject){
number=rowObject.properties.number;
name= rowObject.properties.shortName;
fullDetails= '<strong> '+name+ '</strong> </br>[<a id="pointer" title="Click to search" href= http://google.com/search?search='+number+' target='+number+'>'+number+'</a>]';
return fullDetails;
}
},
{ name:"name",jsonmap: "properties.shortName", width: 200,classes: 'pointer wrap',hidden:true},
{name:"number", jsonmap: "properties.number", width: 50 ,sortable: true,hidden:true},
{ name:"date",jsonmap: "properties.date", width: 80,hidden :false}
],
pager: "#pager",
//rowNum: 20,
rowNum: 100,
rowList: [10, 20, 30],
sortname: "matter",
sortorder: 'asc',
viewrecords: true,
gridview: true,
loadonce : true,
autoencode: true,
height:'auto',
hidegrid: false,
caption: "Details",
jsonReader : {
repeatitems: false,
root: "properties"
}
装载工作正常 但是在单击列标题后对其进行排序
TypeError:rowObject.properties未定义 显示number = rowObject.properties.number; 什么可能出错? 可能有什么问题? 下面给出的是样本数据
[
{"properties":
{"date":1409327760,"name":"agent M","number":"4117859","shortName":"AM"},"children":null,"valId":"225","objectType":"VAL"},
{"properties":
{"date":14093278860,"name":"agent x","number":"97893783","shortName":"AX"},"children":null,"valId":"191","objectType":"VAL"}
]
答案 0 :(得分:1)
您不应该使用name: "properties.number"
之类的列名等。您应该查看name
属性的值,例如将用作变量名称(或属性名称)的值以及id
属性值的部分。
jQuery("#list").jqGrid('setGridParam',{datatype:'local'});
内的loadComplete
行通常是错误的。如果您从服务器加载数据并使用datatype: "json"
,则应使用loadonce: true
代替。
您没有发布您使用的datatype
,并且没有发布输入数据的示例(2行输入数据就足够了)。似乎怀疑repeatitems: true
的值jsonReader
。不过我可以假设您可以使用jsonmap
属性来读取原始数据(从服务器返回):
{ name: "number", jsonmap: "properties.number", width: 50, hidden: true}
请参阅the demo。