0

ユーザーが編集できる新しい行を追加するjqGridがあります。新しい行を保存するためのボタンがあります。呼び出しにセキュリティを詰め込むために、beforeSendにアクセスする必要があります。これは、グリッドを使用する他のいくつかのシナリオで機能していますが、これは機能していません。何が起こっているのかわからない。

新しい行を追加する方法は次のとおりです。

  jQuery("#myTable").jqGrid('addRow',{
      rowID : "new_row",
      initdata : {},
      position :"first",
      useDefValues : false,
      useFormatter : false,
      addRowParams : {extraparam:{}});

保存ボタンで実行されるコードは次のとおりです。

      jQuery("#myTable").jqGrid('saveRow',"new_row", {
          "url": "{{path('recording_create')}}",
          "mtype": "POST",
          "succesfunc": function(response) {
              return true; 
          }
      });

これを試してみましたが、解雇されません。行を保存するときにこれが呼び出されると思いました:

$.extend($.jgrid.defaults,                 
                {
                ajaxRowOptions: { 
                    beforeSend: function () {
                        alert('Before Row Send'); // not called
                     }
                    },
                }
            );

私もこれを試しましたが、これはフォーム編集でのみ呼び出されると思いますか?

            $.extend($.jgrid.edit, {
                ajaxEditOptions: {
                    beforeSend: function (jqXHR, settings) {
                        alert('Before Row Send');  // not called
}}});

何かご意見は?

ありがとう、スコット

4

2 に答える 2

2

使用してみることができます

$.extend($.jgrid.inlineEdit, {
    ajaxRowOptions: {
        beforeSend: function (jqXHR, settings) {
            alert('Before Row Send');
        }
    }
});

うまくいくことを願っています。

更新: 申し訳ありませんが、正しいコード

$.extend($.jgrid.defaults, {
    ajaxRowOptions: {
        beforeSend: function () {
            alert('Before Row Send');
        }
    }
});

あなたはすでに質問のテキストに含まれています。それはうまくいくはずです。グリッドが作成される前にコードが実行されることを確認することだけが重要です。

于 2012-08-16T17:24:35.397 に答える
0

オレグ、アイデアをありがとう。しかし、それはうまくいきませんでした。ただし、以下は機能します。

    $.ajaxSetup({
        beforeSend: function (jqXHR, settings) {
           alert('Before Row Send');               
      }});

あなたへの質問ですが、上で拡張した方法で何を拡張できるかをどうやって知ることができますか?

ありがとう、スコット

于 2012-08-16T17:33:10.387 に答える