0

jqGridは、以下のコードを使用して定義されます。editurlはインライン編集に使用されます。dataProxyは、フォーム編集で画像をアップロードするために使用されます。

ただし、フォーム編集で保存ボタンが押された場合、dataProxyは呼び出されません。dataProxyを強制的に呼び出す方法、またはjqGrid列に画像をアップロードできるようにする他の方法はありますか?

$grid.jqGrid({
        datatype: "json",
        url: '/GetData',
        editurl: '/Edit',
... 
});


$grid.jqGrid("navGrid", "#grid_toppager", { 
            search:  true,
            del: true,
            add: true,
            view: true,
            edit: true
          }, 

        {
    url: null,
    dataProxy : function(opt, args) { 
      alert('Why this box does not appear on form save if jqgrid editurl is set'); 
      },

    beforeInitData: function () {
       var
         colm = $grid.jqGrid('getColProp', '_image'),
         selRowId = $grid.jqGrid('getGridParam', 'selrow');
      colm.editoptions.src = '/GetImage?id=' + selRowId;

    },
   closeAfterEdit: true,
   reloadAfterSubmit: true,
}
);
4

1 に答える 1

1

の使用目的については説明していませんdataProxyが、本当にこの機能を使用する必要がある場合は、次のことを行う必要があります。

  • dataProxyjqGridのコールバックとして定義する必要があります。$.extendを変更するために使用できます$.jgrid.defaults
  • url追加/編集または削除操作のいずれかがであるか、またはのオプションを明示的にnull設定する必要があります(たとえば、そうでないものを上書きするため)。useDataProxyeditGridRowdelGridRowtrueediturlnull

したがって、あなたの場合はdataProxy、[編集]ダイアログのリストからjqGridオプションのリストに移動する必要があります。

于 2012-05-06T20:57:23.440 に答える