2012-03-03 8 views
1

私の質問について多くの回答がありましたが、それは正しくありましたが、誰かがこのような問題を抱えているので、私の問題は解決しません。つまり、送信ボタンをクリックすると自分のフォームが消えません。 私はこのコードを使用します(私は私の問題は小さなだと思いますが、私はそれを解決することはできません、私を助けてください)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'); 
    */ 

}); 

おかげ 敬具

答えて

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を参照してください。

0

私は同様の問題がありましたが、手動でフォームを閉じようとしましたが、これは最善のことではありませんが、とにかく動作します。コード

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

とにかくフォームを閉じる前にエラーがないかどうかを評価することをお勧めしにこれを追加すること

してみてください。

関連する問題