我想使用下面的json形成一个jqgrid,并且下面的json可能会频繁更改。如何动态绑定和JqGrid中的行和列?
{ “rowvalue”:[ { “公司”: “测试”, “价格”:98, “更改”:8, “perchange”:8, “LASTUPDATED”: “2” , “companyid”:2 }, { “公司”: “test123”, “价格”:1, “更改”:1, “perchange”:1, “LASTUPDATED”: “1” , “companyid”:3 }, { “company”:“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会动态变化 在此先感谢!
我用另一种方法导出数据..我有另一个问题在Jqgrid已被讨论在许多论坛,但我没有得到一个清晰的看法。我正在导出过滤的数据,但它仅从页面1导出,但不能从其他页面导出。任何人都可以帮忙吗? – Xyz
我也有解决方案,而不是使用jqgrid下载数据,你可以从下载按钮调用一个函数,以及你在jqgrid中显示的变量中的任何数据,下载整个数据。 – Shiladitya
将网格的整个数据存入“数据”变量,您可以使用它来导出数据。 – Shiladitya