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

时间:2017-06-21 01:06:24

标签: javascript jquery json jqgrid

我想使用下面的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将动态更改 在此先感谢!!

1 个答案:

答案 0 :(得分:0)

---- ColName ----- var colName = Object.keys(data [“rowvalue”] [0]);

x = _variable

请根据您的情况在ColModel中添加其余属性。