JQGRID-防止在执行afterSubmit后添加空行

JQGRID-防止在执行afterSubmit后添加空行,jqgrid,Jqgrid,我有一个网格,我在navgrid中放置了一个自定义按钮,用于在另一个表中插入完全不同的数据,因此我使用editGridRow(“new”,…),在php url中,我只是将数据发布到另一个表中。事实上,如果我提交表单,我就会遇到这个问题,即使我解决了重载后提交:false,它会在网格中添加一个新的空行 您可以在此处看到这段代码: jQuery("#"+child_table_id).navButtonAdd("#"+pager_id, { caption:"Insert",buttonicon:

我有一个网格,我在navgrid中放置了一个自定义按钮,用于在另一个表中插入完全不同的数据,因此我使用editGridRow(“new”,…),在php url中,我只是将数据发布到另一个表中。事实上,如果我提交表单,我就会遇到这个问题,即使我解决了重载后提交:false,它会在网格中添加一个新的空行

您可以在此处看到这段代码:

jQuery("#"+child_table_id).navButtonAdd("#"+pager_id,
{
caption:"Insert",buttonicon:"ui-icon-arrow-1-se",
onClickButton:function(){ 
    var rows = jQuery("#"+child_table_id).getRowData(); 
    if ( rows.length != 0 ) { 
        jQuery("#"+child_table_id).editGridRow("new",{height:140,width:420,url:"http://.../edit_datatable.php?table_name=mytable&fact=insert&q=1&flag=yes&ref_id="+id_row,
    reloadAfterSubmit:false, 
    recreateForm:true, 
    closeOnEscape:true, 
    closeAfterAdd:true,
    addCaption:'Insert',
savekey: [true,13],
    bSubmit:'Save',
    afterSubmit:function(response, postdata){ alert('inserting to a total different table...'); return {0:true} } 
});
}
},
position:"last",
title:"Insert new step...",
cursor:"pointer"
});
我甚至试图补充:

onClickButton:function(){ $("#"+child_table_id).setGridParam({ datatype: 'local' }); }

afterSubmit:function(response, postdata){ return {0:true} },

onclickSubmit : function(params, posdata) {return {0:true} },

afterComplete:function(response, postdata, formid) { $("#"+child_table_id).setGridParam({ datatype: 'json' }); }
但它还是在网格中添加了一行

那么,如何防止jqGrid添加新的空网格并刷新网格呢?..

您写过“在另一个表中插入完全不同的数据”,但您将按钮添加到网格的导航栏
“#”+子表\u id
onClickButton
回调中的代码将新行添加到同一网格中:

jQuery(“#”+child#u table_id).navButtonAdd(“#”+pager_id,{。。。
onClickButton:function(){
...
jQuery(“#”+child_table_id).editGridRow(“新的”。。。
}
});

如果您真的想向另一个网格添加新行,您应该在
editGridRow
中使用另一行的id(如
jQuery(“#”+另一个表的id)。editGridRow(“新建”,…
).

Hello Oleg,首先感谢您的回答。我会解释得更清楚一些……我在它们之间独立地处理行。具体来说,我说的是完全不同的表,不是网格,但实际上我是在同一个表中添加,但没有在同一个网格中添加,而是创建一个新的网格节点,就像它是独立的,但与当前选定的行相关在ent网格中单击“自定义”按钮。至少有可能避免在同一网格中插入回调?谢谢!Luigi@LuigiN.Puleio:可以避免在同一个网格中插入数据,而在另一个网格中插入数据。为此,应将
editGridRow
应用于目标网格,如
jQuery(#+另一个\u table\u id).editGridRow(“new”,…)
。可能您不想在任何网格中插入数据?可能您只想将数据发送到服务器,服务器将其插入数据库表?如果您应该使用或简化版本的功能,如.@LuigiN.Puleio:对不起,我不了解更多。您写道“在另一个表中插入完全不同的数据”,然后您写道“在同一个表中添加一条记录,加载编辑器并插入数据,但不插入任何网格。”"。是要将行添加到网格中,还是要使用其他数据重新创建网格?如果需要任何帮助,您应该更清楚地描述您要执行的操作以及当前存在的问题。没有Oleg,我只想在同一个表中添加一条记录,加载编辑器并插入数据,但不插入任何网格。然后在插入行之后,我只需要插入一个新的jqGrid()在当前网格加载之后,该记录被正确插入。更准确地说,我有一个主网格,其中一些记录是子网格;在其中,我放置了一个新网格,其中包含一条记录和两列“是”和“否”按钮。按这些按钮将在当前网格之后附加一个新网格。在navgrid中,我在其中添加了一个自定义按钮sert,而不是append,一个新的网格。有办法吗?…@LuigiN.Puleio:对不起,我听不懂你说的,但我怀疑你试图以错误的方式使用jqGrid和行编辑。