空行在调用 addRowData 时被附加到 JQGrid

Empty rows are getting appended to JQGrid on calling addRowData

本文关键字:JQGrid 调用 addRowData      更新时间:2023-09-26

我以这种方式拥有JQgrid,

.HTML:

<table id="grid"></table>
<input type="button" id="UpdateGridButton" value="Update" />

我最初以这种方式将JSon字符串即"mydata"加载到JQgrid,

JavaScript:

var mydata = [{id: 48803, thingy: "DSK1"}, {id:48769, thingy:"APPR"}, {id:12313, thingy: 'FOOBAR'}];
$("#grid").jqGrid({
        datastr : mydata,
        datatype : 'jsonstring',
    gridview: true,
    height : '100%',
        autowidth : true,
    height: 'auto',
    autoencode: true,
    rowNum: mydata.length,
    rownumbers : true,
        rownumWidth : 40,
        multiselect : false,
        viewrecords : true,
        autoencode : true,
        scrollrows : true,
        hoverrows:true,
        width: '100%',
        shrinkToFit: false,
    colNames: ['Inv No', 'Thingy'],
    colModel: [{
        name: 'id',
        index: 'id',
        width: 60,
    },{
        name: 'thingy',
        index: 'thingy',
        width: 90,
    }],
    caption: "Stack Overflow Example"
});

它正在起作用。

问题是当我尝试以这种方式将更多行附加到现有的 JQrid 时,

JavaScript:

$('#UpdateGridButton').click(function(){
newData = [[462,"abc"],[462,"abc"],[462,"abc"],[462,"abc"],[462,"abc"],[462,"abc"]];
    var p = $('#grid').getGridParam();
    alert("found gridParamData:", p.data);
    if (p.data){        
        var rowId = $.jgrid.randId();
        $("#grid").jqGrid('addRowData', rowId, newData);
        console.log(rowId);
        /*for (var i = 0; i <= newData.length; i++) {
       jQuery("#grid").jqGrid('addRowData', i + 1, newData[i]);
}*/
    }
    /*for (var i = 0; i <= newData.length; i++) {
       jQuery("#grid").jqGrid('addRowData', i + 1, newData[i]);
}*/
});

行被追加,但它们是空的。

我的数据是这样的数组形式,

newData = [[462,"abc"],[462,"abc"],[462,"abc"],[462,"abc"],[462,"abc"],[462,"abc"]];

谁能帮我?

谢谢

newData不是有效的 json,需要是键/值对,因此新数据不正确,请将newData数组更改为以下内容:

[{"id" : 462, "thingy":"abc"},{"id" : 462, "thingy":"abc"},{"id" : 462, "thingy":"abc"},{"id" : 462, "thingy":"abc"},{"id" : 462, "thingy":"abc"},{"id" : 462, "thingy":"abc"}];

然后addRowData,您将看到它工作正常。

查看示例