jqGrid onSelectRow没有';不起作用
本文关键字:不起作用 onSelectRow 没有 jqGrid | 更新日期: 2023-09-27 18:19:55
我想在内联编辑后执行一些操作,但当我使用此代码时,在编辑后,行就停留在编辑模式中。如果我删除onSelectRow
,行编辑就可以完美地工作。
onSelectRow: function(rowid){
$(grid_selector).jqGrid('editRow', rowid, true, null, null, null, {}, aftersavefunc);
function aftersavefunc(rowid, result) {
alert("X");
$(grid_selector).trigger("reloadGrid");
}
},
首先你写的是:
如果我删除
onSelectRow
,行编辑就可以完美地工作。
这听起来可疑,因为您在editRow
内部开始行编辑。如果在删除onSelectRow
回调后内联编辑仍然有效,则应搜索代码中直接或间接调用editRow
的其他部分。例如,您可以使用formatter: "actions"
或inlineNav
来启动editRow
。要通知jqGrid使用您的aftersavefunc
,您必须使用inlineNav
或formatter: "actions"
的相应参数。例如,inlineNav
提供editParams
和addParams
选项。通常定义一组操作内联编辑参数(请参阅下面代码中的editOptions
变量),并在editRow
:的直接和间接调用中使用它
var editOptions = {
keys: true,
successfunc: function () {
var $self = $(this);
setTimeout(function () {
$self.trigger("reloadGrid");
}, 50);
}
},
$grid = $("#list");
$grid.jqGrid({
...
onSelectRow: function (rowid) {
$(thus).jqGrid("editRow", rowid, editOptions);
}
});
$grid.jqGrid("navGrid", "#pager", { edit: false, add: false });
$grid.jqGrid("inlineNav", "#pager", {
addParams: {
position: "last",
addRowParams: editOptions
},
editParams: editOptions
});
顺便说一下,可以点击inlineNav
添加的原始编辑按钮,而不是直接调用editRow
。请参阅相应代码示例的答案(在onSelectRow
回调内部)。