如果在jqgrid中设置editurl,如何在表单编辑中强制dataProxy调用

时间:2012-05-06 20:10:10

标签: javascript jqgrid

使用以下代码定义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,
}
);

1 个答案:

答案 0 :(得分:1)

您没有描述使用dataProxy的目标,但如果您确实需要使用此功能,则应遵循以下规则:

  • 您应该将dataProxy定义为jqGrid的回调。您可以使用$.extend更改$.jgrid.defaults
  • 添加/修改或删除操作的url应为null,或者您应将useDataProxyeditGridRow的{​​{1}}选项设置为delGridRow明确地(例如覆盖true不是editurl)。{/ li>

因此,在您的情况下,您只需将null从编辑对话框列表移动到jqGrid选项列表。