当 InLineEditing JQGrid 在添加或更改时出错时保留记录

Preserve record when InLineEditing JQGrid gives error when adding or changing

我正在使用 InLineEditing JQGrid,在添加或更改记录时,如果失败,记录就会消失。我需要保留这些行以供用户更正错误信息并再次尝试保存记录。

在我的代码段下面

jQuery("#" + p_gridName).jqGrid('inlineNav', '#p' + p_gridName, {
    edit : true, editicon : "ui-icon-pencil", 
    add : true, addicon : "ui-icon-plus",
    save : true, saveicon : "ui-icon-disk", savetitle : "Salvar",
    cancel : true, cancelicon : "ui-icon-cancel", canceltitle : "Cancelar",
    editParams :  {
        keys : false, oneditfunc : null, successfunc : function (response) {                    
            if (response != null && response.responseText != null) {                                                
                if (response.responseText.includes("OK")) {
                    alert(response.responseText);
                    reloadDataGrid(p_gridName, p_contentName, p_filtroGrid);
                    atualizaInfoStatusNavegacao('edit', valorChave, p_primaryKey, p_contentName);
                    return true;
                } else {
                     alert(response.responseText);
                     return true;
                }
            }
        }, afterrestorefunc: function (rowid) {
                alert("after restore func");
                return rowid;
        }, restoreAfterError : false
    },
    addParams :  {
        useDefValues : true, addRowParams :  {
             successfunc : function (response) {
                 if (response.responseText.includes("OK")) {
                     alert(response.responseText);
                     reloadDataGrid(p_gridName, p_contentName, p_filtroGrid);
                     return true;
                 } else {
                     alert(response.responseText);
                     return true;
                 }
            }
        }
    }
});

有一个名为 restoreAfterError 的选项(请参阅文档 here),默认情况下为真。将其设置为 false 以获得所需的行为。

这是editRow或saveRow中的选项(参数)。

编辑

您的代码应该 return 真实或更好的数组,第一个值 true/false 和这样的消息

        if (response != null && response.responseText != null) {                                                
            if (response.responseText.includes("OK")) {
                alert(response.responseText);
                reloadDataGrid(p_gridName, p_contentName, p_filtroGrid);
                atualizaInfoStatusNavegacao('edit', valorChave, p_primaryKey, p_contentName);
                return [true,''];
            } else {
                 return [false, response.responseText];
            }
        } else {
            return [false, 'no response from the server'];
        }