我尝试使用dataProxy方法将参数和一个图像传输到我的服务器(jqgrid版本4.5.2)。
Firebug给出了一个错误:d.p.dataProxy未定义(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)
缺少什么?
数据混合函数的断点永远不会被触发
由于这种方法没有记录,因此使用它并不容易!