Javascript 如果在jqgrid中设置了editurl,如何在表单编辑中强制dataProxy调用
jqGrid是使用下面的代码定义的。editurl用于内联编辑。 dataProxy用于在表单编辑中上载图像 但是,如果在表单编辑中按下“保存”按钮,则不会调用dataProxy。 如何强制调用dataProxy或以其他方式允许在jqGrid列中上载图像Javascript 如果在jqgrid中设置了editurl,如何在表单编辑中强制dataProxy调用,javascript,jqgrid,Javascript,Jqgrid,jqGrid是使用下面的代码定义的。editurl用于内联编辑。 dataProxy用于在表单编辑中上载图像 但是,如果在表单编辑中按下“保存”按钮,则不会调用dataProxy。 如何强制调用dataProxy或以其他方式允许在jqGrid列中上载图像 $grid.jqGrid({ datatype: "json", url: '/GetData', editurl: '/Edit', ... }); $grid.jqGrid("navGr
$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,
}
);
您没有描述使用
dataProxy
的目标,但是如果确实需要使用该功能,您应该遵循以下几点:
- 您应该将
定义为jqGrid的回调。您可以使用dataProxy
更改$.extend
$.jgrid.defaults
- 添加/编辑或删除操作的
应为url
,或者您应将null
或editGridRow
的delGridRow
选项显式设置为useDataProxy
(例如覆盖不为true
的null
)editurl
因此,在您的情况下,您应该将
dataProxy
从编辑对话框列表移动到jqGrid选项列表。使用数据代理的目的是允许在jqGrid中上载图像。同一个jqGrid页面用于编辑许多表。如果使用$.extend定义dataproxy,如何将额外的参数(表名)传递给dataproxy?@Andrus:我不确定我是否理解您的意思dataProxy
函数将被调用,并将带有前缀的表名作为第三个参数“set\ux”
。你可以利用事实。或者,您可以使用editData
参数来扩展通过表单编辑发送的postData
信息。postData
将是对象的一部分,该对象是dataProxy
的第二个参数。