jqGrid在编辑后重新加载其他网格

时间:2011-11-28 15:14:19

标签: jquery jqgrid

首先,我为我的英语道歉。

我有4个网格显示来自不同sql查询结果的数据。它们按其状态分类。所有的网格工作正常,但有一件事我想做,但我无法弄清楚如何做到这一点。我希望在成功编辑后刷新其他网格。 jqGrid只刷新我正在编辑的当前网格,这很好,但我最终刷新整个页面以查看其他网格上的更改项目。

我使用了.trigger("reloadGrid");,但这似乎不起作用。

我怎样才能做到这一点?请帮忙。非常感谢。

这是jqGrid:

$('#diag').jqGrid({
        url: 'ajax/ajax-diag.php',
        data: 'xml',
        mtype: 'GET',
        colNames: ['Job', 'Client', 'Status', 'Notes'],
        colModel: [
            { name: 'jobnumber', index:'jobnumber', align:'center', width: 70, editable:true},
            { name: 'clientid', index:'clientid', align:'center', width: 70, editable:true  },
           { name: 'statuslabel', index:'statuslabel', align: 'center', width: 125, editable:true},            
            { name: 'notes', index: 'notes', align: 'center', editable: true }
        ],
        loadComplete: function() {

            if ($('#diag').getGridParam("records") == 0) {
                $('#diag').hide();              
            }            
        },        
        pagination: true,
        pager: '#diagpager',
        rowNum: 10,
        rowList: [10,20,30],
        sortname: 'jobnumber',
        width: '100%',
        height: '100%',        
        sortorder: 'desc',
        viewrecords: true,
        closeOnEscape: true,
        gridview: true,
        editurl: "ajax/ajax-edit.php",
        caption: 'Stage 1'        
    });
$('#diag').jqGrid('navGrid', '#diagpager',{},{closeAfterEdit:true},{closeAfterAdd:true});

我也在使用导航器。

解决: 感谢Manuel van Rijn,我找到了导航器寻呼机的正确参数。

这是我的最后一个寻呼机:

$('#diag').jqGrid('navGrid', '#diagpager',{},{
            closeAfterEdit:true,
            afterComplete:function() { $('#twoRec').trigger('reloadGrid')}
        },{closeAfterAdd:true});

2 个答案:

答案 0 :(得分:1)

试试这个

$("#gridId").jqGrid().trigger("reloadGrid");

<强>更新

$('#diag').jqGrid('navGrid', '#diagpager',{
    afterRefresh: function() {
        $("#otherGrid").jqGrid().trigger("reloadGrid");
    }
},{closeAfterEdit:true},{closeAfterAdd:true});

// above seems to work only when hitting the refresh button

更新2

$('#diag').jqGrid('navGrid', '#diagpager',{
    editfunc: function(rowId) {
        ('#grid_id').editRow(id, true, false, reloadGrids); 
    }
},{closeAfterEdit:true},{closeAfterAdd:true});

function reloadGrids() {
    $("#otherGrid").jqGrid().trigger("reloadGrid");
}

答案 1 :(得分:1)

你可以试试这个:

$('#diag').jqGrid('setGridParam', { datatype: 'xml' }).trigger('reloadGrid');

可以设置某些jqGrid设置,以防止网格再次命中服务器。其中一个是datatype。另一个是loadonce