我尝试使用 dataProxy 方法将参数和一张图像传输到我的服务器(jqgrid 版本 4.5.2)。
Firebug 给我一个错误:dpdataProxy 未定义(jquery.jqGridmin.js 第 298 行)。
这是代码:
.navGrid('#pager1',
{edit:false,add:true,del:true,search:false,refresh:true},
{
//edit
},
{
jqModal:true,
resize:false,
url:'url_1.php',
reloadAftersubmit:true,
closeAfterAdd:true,
recreateForm:true,
onInitializeForm: function (formid)
{
$(formid).attr('method','POST');
$(formid).attr('enctype','multipart/form-data');
$(formid).attr('action','');
},
useDataProxy:true,
dataProxy: function (opts,act)
{
opts.url = 'url_2.php';
opts.iframe = true;
var $form = $('#FrmGrid_' + $(this).getGridParam('id'));
//use normal ajax-call when no files to upload
if($form.find(':file[value!=""]').size() == 0)
{
$.ajax(opts);
return;
}
//Prevent non-file inputs double serialization
var ele = $form.find(':input').not(':file');
ele.each(function()
{
$(this).data('name', $(this).attr('name'));
$(this).removeAttr('name');
});
//Send only previously generated data + files
$form.ajaxSubmit(opts);
//Set names back after form being submitted
setTimeout(function()
{
ele.each(function()
{
$(this).attr('name', $(this).data('name'));
});
}, 200);
},
afterSubmit: function (reponse,postdata)
{
alert('aftersubmit');
return [true,''];
}
}, // (Add Options)
什么不见了 ?
永远不会触发 dataproxy 函数上的断点。
由于此方法没有记录,因此使用起来并不容易!