创建网格后设置jqGrid数据

创建网格后设置jqGrid数据,jqgrid,Jqgrid,下面的示例代码将加载jqGrid(此代码有效) 我如何重写这个示例,以便在创建jqGrid之后设置gridData?我试过这个 jQuery(document).ready(function () { var gridData = [ { col1: 'cell11', col2: 'cell12', col3: 'cell13' }, { col1: 'cell21', col2: 'cell22', col3: 'cel

下面的示例代码将加载jqGrid(此代码有效)

我如何重写这个示例,以便在创建jqGrid之后设置gridData?我试过这个

jQuery(document).ready(function () {
    var gridData = [
                { col1: 'cell11', col2: 'cell12', col3: 'cell13' },
                { col1: 'cell21', col2: 'cell22', col3: 'cell23' }
                ];
    $('#myGrid').jqGrid({
        datatype: 'clientSide',
        colNames: ['Col1', 'Col2', 'Col3'],
        colModel: [
                        { name: 'col1' },
                        { name: 'col2' },
                        { name: 'col3' }
                        ]
    })


    $('#myGrid')[0].data = gridData;
但是,上面的代码不起作用。有人能告诉我怎么做吗

更新:我在最后一行也试过了,但也没用

    $('#jqgrid-panel-contents').jqGrid('setGridParam', {data: gridData});

也许以后再重新加载网格

 $('#jqgrid-panel-contents').jqGrid('setGridParam', {data: gridData}).trigger('reloadGrid');

@如果我能很好地理解你想说的话:我想你必须做一个网格卸载

$("#jqgrid-panel-contents").jqGrid('GridUnload');
在添加新数据之前

当网格中加载了数据并且您希望修改数据时,(以上)中的解决方案将无法使用(至少在版本4.15.2中)

但是(我记不清在哪里)建议的以下操作将起作用,它还将把你的网格寻呼机设置为1,以防你的新数据没有那么多页面

var gParams=$('#myGrid').jqGrid(“getGridParam”);
gParams.data=数据;
$('#myGrid').trigger(“reloadGrid”,[{page:1}]);

是的,我刚想出来,回来回答我自己的问题,找到了你的问题。谢谢@约翰:我不确定上一个版本是否正确,但可能需要在更新
数据
参数后调用
刷新索引
(请参阅)。可能是
relodGrid
已经完成了所有的工作。此外,您应该在
gridData
array
id
属性的项中包含,或者使用
localReader
定义网格的哪一列可以被解释为id。例如
localReader:{id:'col1'}
当网格在同一页面中加载不同的数据时,此解决方案不起作用,n次。旧数据保留,新数据添加到其中。因为setGridParam在内部使用jquery.extend。
$("#jqgrid-panel-contents").jqGrid('GridUnload');