Jquery jqgrid表单编辑:关于删除行后操作的问题

Jquery jqgrid表单编辑:关于删除行后操作的问题,jquery,jqgrid,form-editing,Jquery,Jqgrid,Form Editing,经过长时间的搜索,我通过表单编辑成功地删除了jqgrid中的一行 但是,还有两件小事要做: 如何在删除行的情况下重新加载网格 如果无法删除该行,如何显示信息以及原因 我试图在事件“afterSubmit”中搜索传递给函数的参数,但没有关于如何操作这些参数的真正解释 网格的创建: tableToGrid("#TabUser", { caption: 'Gestion des Utilisateurs', width: 'auto', height: "auto",

经过长时间的搜索,我通过表单编辑成功地删除了jqgrid中的一行

但是,还有两件小事要做:

  • 如何在删除行的情况下重新加载网格
  • 如果无法删除该行,如何显示信息以及原因
我试图在事件“afterSubmit”中搜索传递给函数的参数,但没有关于如何操作这些参数的真正解释

网格的创建:

tableToGrid("#TabUser", {
    caption: 'Gestion des Utilisateurs',
    width: 'auto',
    height: "auto",
    hidegrid: false,
    pager:'#DivUser',
    rowNum:10,
    cellEdit: true,
    cellsubmit: 'remote',
    cellurl: 'Adminuser',
    colModel: [{name:'Id', editable:false, width:50},
               {name:'Login', editable:false, width:150},
               {name:'Nom', editable:true, width:200},
               {name:'Prénom', editable:true, width:200},
               {name:'Rôle', editable:true, width:80, edittype:'select', 
                editoptions: { multiple: false, value:{ADMIN:'ADMIN',GUEST:'GUEST'}}},
               {name:'Email', editable:true, width:200}],
    beforeSubmitCell: function(rowid, celname, value, iRow, iCol) {
        var rowData = jQuery(this).getRowData(rowid); 
        var idUser= rowData['Id'];// On récupère l'Id du user en cours d'édition
        return {idUser:idUser}; }

});
导航:

$("#TabUser").navGrid('#DivUser',
        {edit:false,add:false,del:true,search:false},{}, {},
        {width:500, url:'Adminuser',
            reloadAfterSubmit:true,
             onclickSubmit: function(param){ 
                var sr = jQuery('#TabUser').getGridParam('selrow');
                var idUser = jQuery('#TabUser').getCell(sr,'Id');
                return {idUser:idUser}; },
            afterSubmit: function(reponse, data) {
                $("#TabUser").trigger('reloadGrid');
                $("#eData").click(); // clic sur "Annuler"
                return [true,"Supression réussie"];
            }
        });
“响应”和“数据”的价值是什么? 如何重新加载网格


使用url“Adminuser”(用java编写)在数据库中有效地删除了该行。

我认为真正的问题不是删除该行后重新加载网格。将由
tableToGrid
创建的网格具有
datatype:“local”
并且不需要从服务器重新加载数据

您真正的问题是jqGrid 3.4.1中的错误,该错误在jqGrid代码中已修复(请参阅)。因此,删除的行不会从网格中删除。问题在于代码:

错误在于
postdata
已经是数组而不是字符串。因此,该行中的一个get异常和从网格中删除该行的下一行将不会执行。要解决此问题,您可以使用来自的jqGrid代码的最新版本,也可以将上述行(jquery.jqGrid.src.js中的行号为8282)修改为

或者下载修改版的
jquery.jqGrid.src.js
。之后,您可以使用
$(“#TabUser”).trigger('reloadGrid')删除该行从您的代码和所有将正常工作:请参阅


要在行的“Delete”中报告来自服务器的错误信息,您应该只在HTTP响应中报告。您还可以定义回调,该回调重新格式化服务器对要显示为错误消息的HTML代码片段的响应。有关更多信息,请参见或。

我认为真正的问题不是删除行后重新加载网格。将由
tableToGrid
创建的网格具有
datatype:“local”
并且不需要从服务器重新加载数据

您真正的问题是jqGrid 3.4.1中的错误,该错误在jqGrid代码中已修复(请参阅)。因此,删除的行不会从网格中删除。问题在于代码:

错误在于
postdata
已经是数组而不是字符串。因此,该行中的一个get异常和从网格中删除该行的下一行将不会执行。要解决此问题,您可以使用来自的jqGrid代码的最新版本,也可以将上述行(jquery.jqGrid.src.js
中的行号为8282)修改为

或者下载修改版的
jquery.jqGrid.src.js
。之后,您可以使用
$(“#TabUser”).trigger('reloadGrid')删除该行从您的代码和所有将正常工作:请参阅


要在行的“Delete”中报告来自服务器的错误信息,您应该只在HTTP响应中报告。您还可以定义回调,该回调重新格式化服务器对要显示为错误消息的HTML代码片段的响应。有关更多信息,请参阅或。

感谢您对重新加载操作的良好回答:它起作用了!在你回答之后,我发现这个问题已经被描述过了;很抱歉我现在将尝试实现te服务器信息;我会告诉你结果的!感谢您对重新加载操作的良好回答:它起作用了!在你回答之后,我发现这个问题已经被描述过了;很抱歉我现在将尝试实现te服务器信息;我会告诉你结果的!
toarr = postdata.split(",");
toarr = postdata;