我显示了jqGrid表,然后我用navGrid设置了一些属性,如下所示:
$("#opozorila").jqGrid('navGrid', '#opozorilapager',
{afterSubmit: reloadGrid},//Note: reloadGrid contains just alert('test');
{afterSubmit: reloadGrid},
{afterSubmit: reloadGrid});
如果我选择行,点击编辑通过navGrid菜单并提交已编辑的行,则效果很好。但如果我按照以下方式进入编辑弹出窗口,它就无法工作:
onSelectRow: function(id) {
//var id = $(this).attr('id');
$("#opozorila").jqGrid('editGridRow', id);
},
基本上只有在弹出窗口通过navGrid菜单打开时才会触发。我怎样才能让它以两种方式运作?
答案 0 :(得分:2)
首先,您以错误的方式使用navGrid。您应该在{}
之后添加'#opozorilapager'
参数:
$("#opozorila").jqGrid('navGrid', '#opozorilapager',
{}, // !!! navGrid options
{afterSubmit: reloadGrid},//Note: reloadGrid contains just alert('test');
{afterSubmit: reloadGrid},
{afterSubmit: reloadGrid});
现在谈谈你的主要问题。回调afterSubmit
是editGridRow
的选项(请参阅the documentation),因此如果您明确调用它,则应将其指定为参数:
onSelectRow: function(id) {
$(this).jqGrid('editGridRow', id, {afterSubmit: reloadGrid});
}
如果您有多个地方拨打editGridRow
,我建议您将选项保存在变量中并使用navGrid
中的变量并明确调用editGridRow
:
var paramEdit = { afterSubmit: reloadGrid },
paramAdd = { afterSubmit: reloadGrid },
paramDel = { afterSubmit: reloadGrid },
$myGrid = $("#opozorila");
...
$myGrid.jqGrid({
...
onSelectRow: function (rowid) {
$(this).jqGrid("editGridRow", rowid, paramEdit);
}
});
$myGrid.jqGrid("navGrid", "#opozorilapager", {}, paramEdit, paramAdd, paramDel);