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,但如果您确实需要使用该功能,您应该遵循以下内容:

  • 你应该定义dataProxy为 jqGrid 的回调。你可以$.extend用来改变$.jgrid.defaults
  • 对于url添加/编辑或删除操作应该是,null或者您应该设置useDataProxy选项editGridRow或显式(例如覆盖哪些不是)。delGridRowtrueediturlnull

因此,在您的情况下,您应该dataProxy从编辑对话框列表移动到 jqGrid 选项列表。

于 2012-05-06T20:57:23.440 回答