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");
    }
},

jqGrid onSelectRow没有';不起作用

首先你写的是:

如果我删除onSelectRow,行编辑就可以完美地工作。

这听起来可疑,因为您editRow内部开始行编辑。如果在删除onSelectRow回调后内联编辑仍然有效,则应搜索代码中直接或间接调用editRow其他部分。例如,您可以使用formatter: "actions"inlineNav来启动editRow。要通知jqGrid使用您的aftersavefunc,您必须使用inlineNavformatter: "actions"的相应参数。例如,inlineNav提供editParamsaddParams选项。通常定义一组操作内联编辑参数(请参阅下面代码中的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回调内部)。