我想使用下面的json形成一个jqgrid,下面的json可能经常更改。
{" rowvalue":[ { "公司":"测试", "价格":98, "改变":8, " perchange":8, " LastUpdated":" 2", " companyid":2 }, { "公司":" test123", "价格":1, "改变":1, " perchange":1, " LastUpdated":" 1", " companyid":3 }, { "公司":" abc", "价格":1234, "改变":123, " perchange":1, " LastUpdated":" 1", " companyid":1 } ]}
这是我的代码:
$("#table_div"+chartId).empty().jqGrid({
datatype:'json',
data: data,
jsonReader: {
repeatitems: false,
},
colNames: getColNames(data),
colModel: getColModels(data),
rowNum:50,
rowList: [50, 100, 150, 200],
autowidth: true,
height: '100%',
shrinkToFit: false,
gridview: true,
autoencode: true,
sortorder: "asc",
viewrecords: true,
ignoreCase: true,
hoverrows: true,
caption: title
});
function getColNames(data) {
var keys = [];
for(var i=0;i<data.rowValue.length;i++){
for(var key in data.rowValue[i]) {
if (data.rowValue[i].hasOwnProperty(key)) {
keys.push(key);
}
}
break;
}
return keys;}
function getColModels(data) {
var colNames= getColNames(data);
var colModelsArray = [];
for (var i = 0; i < data.rowValue.length; i++) {
var str;
if (i === 0) {
str = {
name: colNames[i],
index:colNames[i],
key:true,
editable:true
};
} else {
str = {
name: colNames[i],
index:colNames[i],
editable:true
};
}
colModelsArray.push(str);
}
console.log(colModelsArray)
return colModelsArray;}
我成功地获取了列的任何方式。但我在获取colmodels方面遇到了问题。 我是javascript的新手。任何帮助,将不胜感激。 注意:rowValue将动态更改 在此先感谢!!
答案 0 :(得分:0)
---- ColName ----- var colName = Object.keys(data [“rowvalue”] [0]);
x = _variable
请根据您的情况在ColModel中添加其余属性。