[英]How to dynamically bind and rows and column in JqGrid?
我想使用下面的 JSON 形成一个 JqGrid,下面的 JSON 可能会经常更改。
{
"rowvalue": [
{
"company": "test",
"price": 98,
"Change": 8,
"perchange": 8,
"LastUpdated": "2",
"companyid": 2
},
{
"company": "test123",
"price": 1,
"Change": 1,
"perchange": 1,
"LastUpdated": "1",
"companyid": 3
},
{
"company": "abc",
"price": 1234,
"Change": 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
会动态变化
提前致谢!
---- ColName ----- var colName = Object.keys(data["rowvalue"][0]);
---- ColModel ----
var colModel = [];
for(var i=0; i<colName.length; i++) {
var tempColModel = {};
tempColModel["name"] = colName[i];
tempColModel["id"] = colName[i];
tempColModel["width"] = 90;
colModel.push(tempColModel);
}
请根据您的情况在 ColModel 中添加其余属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.