如何在jqgrid中提交后关闭表单并重新加载网格?

时间:2012-03-03 07:55:22

标签: jqgrid

我发现很多关于我的问题的回答并正确地做到了,但是因为有些人有这样的问题,我的问题没有解决。即点击提交按钮后我的表格不会消失。 我使用这段代码:(我想我的问题很小但我无法解决,请帮帮我)

$(function(){
$("#grid").jqGrid({
url:'example.php',
datatype: 'xml',
mtype: 'POST',
colNames:['Inv No','Date', 'Amount','Tax','Total','Notes'],
colModel :[ 
  {name:'invid', index:'invid', width:55, align: 'center'}, 
  {name:'invdate', index:'invdate', width:90, align: 'center'}, 
  {name:'amount', index:'amount', width:80, align:'center',editable: true}, 
  {name:'tax', index:'tax', width:80, align:'center',editable: true}, 
  {name:'total', index:'total', width:80, align:'center'}, 
  {name:'note', index:'note', width:150, sortable:false} 
],
height: 'auto',
width: 'auto',
editurl: "edit.php",
pager: '#pager',
rowNum:10,
cellEdit: true,
cellsubmit: 'remote',
cellurl: 'edit.php',
ondblClickRow: function(id, status) {
    //var pageNumber = jQuery("#grid").getGridParam('rowNum');
    //jQuery("#grid").editGridRow(id);
    alert(id);
},
afterSubmitCell: function(response) {
    if(response.responseText == "ERROR")
        alert('Zekki');
},
beforeSubmitCell: function() {
    alert('before'); 

},
rowList:[10,20,30],
sortname: 'invid',
sortorder: 'asc',
viewrecords: true,
gridview: true,
caption: 'My first grid',
multiselect: true,
multikey: 'ctrlKey',
toolbar: [true,'bottom'],
loadComplete: function () {
    //alert("OK");
},
loadError: function (jqXHR, textStatus, errorThrown) {
    alert('HTTP status code: ' + jqXHR.status + '\n' +
          'textStatus: ' + textStatus + '\n' +
          'errorThrown: ' + errorThrown);
    alert('HTTP message body (jqXHR.responseText): ' + '\n' + jqXHR.responseText);
}
}).navGrid('#pager',{edit:true,add:true,del:true},
    {
        afterSubmit:processAddEdit,
        closeAfterAdd: true,
        closeAfterEdit: true,
        reloadAfterSubmit:true,
    }, 
    {
        afterSubmit:processAddEdit,
        closeAfterAdd: true,
        closeAfterEdit: true,
        reloadAfterSubmit:true,
    }, 
    {
        afterSubmit:processAddEdit,
        closeAfterAdd: true,
        closeAfterEdit: true,
        reloadAfterSubmit:true
    }).filterToolbar();
function processAddEdit(response, postdata) {
    alert("* "+response.responseText+" *");
}
    /*var pageNumber = jQuery("#grid").getGridParam('page');
    var rowNumber = jQuery("#grid").getGridParam('rowNum');
     */

});

由于 最诚挚的问候

2 个答案:

答案 0 :(得分:0)

您应该从afterSubmit回调函数返回一些内容。

类似的东西:

function processAddEdit(response, postdata) {
    alert("* "+response.responseText+" *");
    if (everything_is_ok)
        return [true,"",new_id];
    else
        return [false,"Some error happened",null];
}

请参阅trirand wiki

答案 1 :(得分:0)

我遇到了类似的问题,但是尝试手动关闭表单,我确信这不是最好的事情,但无论如何都可以。

尝试将其添加到代码

function processAddEdit(response, postdata) {
   alert("* "+response.responseText+" *");
   $(".ui-icon-closethick").trigger('click');
}

最好在关闭表单之前评估是否没有错误。