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

时间:2012-03-30 13:23:46

标签: jqgrid

我有一个网格,我在navgrid中放置一个自定义按钮,用于在另一个表中插入完全不同的数据,所以我使用了editGridRow(“new”,...),在php url中我只是将数据发布到另一个表中。实际上,如果我提交表单,我就会遇到问题,即使我确定了reloadAfterSubmit: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添加一个新的空网格并刷新网格呢?...

1 个答案:

答案 0 :(得分:1)

您写过“在另一个表中插入完全不同的数据”,但是您向网格"#"+child_table_id的导航栏添加了按钮,而onClickButton回调中的代码会向添加新行相同的网格

jQuery("#"+child_table_id).navButtonAdd("#"+pager_id, { ...
    onClickButton:function(){
        ...
        jQuery("#"+child_table_id).editGridRow("new", ...
    }
 });

如果您确实要将新行添加到另一个网格,则应使用editGridRow中的另一个ID(例如jQuery("#"+another_table_id).editGridRow("new",...)。