在创建网格后设置jqGrid数据

时间:2011-02-23 22:37:40

标签: jqgrid

以下示例代码将加载jqGrid(此代码有效)...

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

如何重写示例以便在创建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});

3 个答案:

答案 0 :(得分:18)

之后可能尝试重新加载网格?

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

答案 1 :(得分:0)

@infantDev如果我理解你想说的话:我认为你必须做一个GridUnload

$("#jqgrid-panel-contents").jqGrid('GridUnload');

之前添加新数据

答案 2 :(得分:0)

当网格中已加载数据并且您想要修改数据时,Ewan Heming(以上)中的解决方案不适用于Free JQGrid(至少对于4.15.2版)。

无论如何,Oleg所建议的(我不记得在哪里)都会起作用,并且如果您的新数据没有那么多页面,它也会将网格分页器设置为1。

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