3

私はこのチュートリアルに従っています http://www.trirand.com/blog/jqgrid/jqgrid.html in LiveDataManipulation->EditRow

私のグリッドは script からデータを受け取りますa.php。ユーザーが jqGrid によってこのデータを変更できるようになった後。変更後のjqGridデータはB.php、データベースを更新するスクリプトにデータを送信し、「すべてうまくいきました」などの応答メッセージを返します。
この応答がページのどこかでユーザーに警告または表示されることを望みます。
チュートリアルを読んで、ここでhttp://www.trirand.com/jqgridwiki/doku.php?id=wiki:form_editingオプションを使用する必要があると思いますafterSubmitが、編集パネルに結果を出力する方法がわかりません.

私は書いた:

$("#editImpresa").click(function(){
var gr = jQuery("#tabImprese").jqGrid('getGridParam','selrow');
if( gr != null ) jQuery("#tabImprese").jqGrid('editGridRow',gr,{
    height:690,
    width:500,
    closeAfterEdit : true,
    reloadAfterSubmit:false,
    afterSubmit: function(response,postdata){ 
       if(response.responseText=="ok")
            success=true;
        else success = false;

        return [success,response.responseText] 
    }
});

どうすればいいですか?ありがとう。

4

1 に答える 1

6

まず第一に、オプションcloseAfterEdit:trueは、サーバーの応答が成功した後に編集フォームを閉じることに従います。closeAfterEdit:false何でも表示できるようにするには、設定をデフォルト値に変更する必要があります。

次に、グリッドの外側にボタンを作成する代わりに、ナビゲーターツールバーを使用することをお勧めします。ご利用いただける場合

var grid = jQuery("#tabImprese");
grid.jqGrid('navGrid','#pager', {add:false,del:false,search:false}, prmEdit);

もう1つの良いオプションは、ondblClickRowイベントハンドラーを使用することです

ondblClickRow: function(rowid) {
    $(this).jqGrid('editGridRow',rowid,prmEdit);
}

ここを参照)または同時に両方の方法。

いずれにせよ、 editGridRowメソッド ( )のオプションを定義する必要がありますprmEditafterSubmitが呼び出されるのは、サーバーの応答にエラー HTTP ステータス コードが含まれていない場合のみであることに注意してください。したがって、errorTextFormatを使用して、エラー サーバーの応答をデコードする必要があります。ステータス メッセージの表示に使用できるafterSubmitイベント ハンドラ。

errorTextFormatデモでは、ステータスとエラー メッセージの両方の表示を示すためだけに使用しました。

ここに画像の説明を入力

ステータス メッセージは 3 秒で消えます。

ここに画像の説明を入力

対応するデモはこちらにあります。

実際の例では、ステータス メッセージを記述するコードをafterSubmitイベント ハンドラ内に配置し、エラー メッセージを返すコードをerrorTextFormat内に配置します。

于 2011-07-23T20:47:57.683 に答える