我有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});
答案 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
。