Javascript 如何在JqGrid中动态绑定行和列?

Javascript 如何在JqGrid中动态绑定行和列?,javascript,jquery,json,jqgrid,Javascript,Jquery,Json,Jqgrid,我想使用下面的json构建一个jqgrid,下面的json可能会频繁更改 {“行值”:[ { “公司”:“测试”, “价格”:98, “改变”:8, “perchange”:8, “最新更新”:“2”, “公司ID”:2 }, { “公司”:“test123”, "价格":一,, "变":一,, “perchange”:1, “最新更新”:“1”, “公司ID”:3 }, { “公司”:“abc”, “价格”:1234, “改变”:123, “perchange”:1, “最新更新”:“1”,

我想使用下面的json构建一个jqgrid,下面的json可能会频繁更改

{“行值”:[ { “公司”:“测试”, “价格”:98, “改变”:8, “perchange”:8, “最新更新”:“2”, “公司ID”:2 }, { “公司”:“test123”, "价格":一,, "变":一,, “perchange”:1, “最新更新”:“1”, “公司ID”:3 }, { “公司”:“abc”, “价格”:1234, “改变”:123, “perchange”:1, “最新更新”:“1”, “公司ID”: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;}
$(“#table_div”+chartId).empty().jqGrid({
数据类型:'json',
数据:数据,
jsonReader:{
重复项:false,
},
colNames:getColNames(数据),
colModel:getColModels(数据),
rowNum:50,
行列表:[5010015200],
自动宽度:正确,
高度:“100%”,
shrinkToFit:错,
gridview:没错,
自动编码:正确,
分拣员:“asc”,
viewrecords:是的,
ignoreCase:是的,
没错,
描述:标题
});
函数getColNames(数据){
var键=[];
对于(var i=0;i----ColName-----
var colName=Object.keys(数据[“rowvalue”][0])

----ColModel----
var-colModel=[];
对于(var i=0;i----ColName-----
var colName=Object.keys(数据[“rowvalue”][0])

----ColModel----
var-colModel=[];

对于(var i=0;iI使用其他方法导出数据..我在Jqgrid中有另一个问题,在许多论坛中讨论过,但我没有得到明确的看法。我导出过滤后的数据,但它仅从第1页导出,而不从其他页面导出..有人能帮我吗?我也有解决方案,而不是使用jqgrid,从下载按钮调用一个函数,在jqgrid中显示变量中的任何数据,下载整个数据。您将把网格的整个数据转换为“数据”变量,您可以使用它来导出数据。我使用了其他方法来导出数据。我在Jqgrid中有另一个问题,已经在许多论坛中讨论过,但我没有得到清晰的视图。我导出过滤后的数据,但它只从第1页导出,而不从其他页导出。有人能帮我吗?我也有解决方案,老鼠与使用jqgrid下载数据相比,您可以从下载按钮调用函数,并将变量中的任何数据显示在jqgrid中,然后下载整个数据。您可以将网格的整个数据转换为“data”变量,您可以使用它导出数据。
---- 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);
}