【问题标题】:How to close form and reload grid after submit in jqgrid?在 jqgrid 中提交后如何关闭表单并重新加载网格?
【发布时间】:2012-03-21 14:50:14
【问题描述】:

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

$(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');
     */

});

谢谢 最好的问候

【问题讨论】:

    标签: jqgrid


    【解决方案1】:

    你应该从你的 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

    【讨论】:

      【解决方案2】:

      我遇到了类似的问题,但尝试手动关闭表单,我确信这不是最好的做法,但它仍然有效。

      尝试将此添加到代码中

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多