0

我尝试使用 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 函数上的断点。
由于此方法没有记录,因此使用起来并不容易!

4

1 回答 1

1

回调函数dataProxy必须定义为 jqGrid 回调(参见此处),而不是navGridprmEdit的或prmAdd参数。您应该将代码移至jqGrid 选项列表。该选项在您的代码中的正确位置使用。有关使用的详细信息,我会将您转发到jqGrid 代码部分dataProxyuseDataProxydataProxy

于 2013-09-02T17:49:01.740 回答