easyupload插件动态传参

首先感谢funnyque 大佬写出了这么好用的插件,解决了我多文件上传的问题。

但是这个插件 我发现只能通过 formparam 静态传参。

我这里有个业务场景:

         获取datagrid的选中行的主键id,将文件上传后, 通过选择的主键id 保存文件名称和文件路径到数据库。

如何获取到动态传参呢? 我在百度上翻阅无果之后,只有硬着头皮翻源码了。

在292行 发现了formparam的赋值代码。 我们修改它。

 

 

这里可以通过硬编码的方式强行修改 formparam里的 key 对应的value值 。(我的formparam 里的key名字叫 objId)

但是这样太死板了。把id选择器的id写死了, 其他datagrid页面不好弄。

正文(嫌啰嗦的直接翻到这里复制代码就好了)

=========================================

于是我在formparam中加了 gridId 参数 ,用来传输 ID选择器的 id名

然后再刚才把刚才写死的那段取值代码  $('#need-datagrid').datagrid('getSelected')

改成动态的 $('#' + $idSelected ).datagrid('getSelected') 。 

这样的话easyui 动态传参就完成了。

代码 , 在页面上easyui js控件中

$('#easyContainer').easyUpload({
        allowFileTypes : '*.jpg;*.doc;*.pdf',//允许上传文件类型,格式';*.doc;*.pdf'
        allowFileSize : 100000,//允许上传文件大小(KB)
        selectText : '选择文件',//选择文件按钮文案
        multi : true,//是否允许多文件上传
        multiNum : 5,//多文件上传时允许的文件数
        showNote : true,//是否展示文件上传说明
        note : '提示:最多上传5个文件,支持格式为doc、pdf、jpg',//文件上传说明
        showPreview : true,//是否显示文件预览
        url : '${path}/file/upload',//上传文件地址
        fileName : 'file',//文件filename配置参数
        formParam: {
            gridId : 'need-datagrid',   //'need-datagrid' 改成你的datagrid的ID选择器的id .     就是$("# 这个id")
            fileFrom : 'cqNeed',
            objId : null
          },
        timeout : 30000,//请求超时时间
        okCode : 200,//与后端返回数据code值一致时执行成功回调,不配置默认200
        successFunc : function(res) {
            debugger
            console.log('成功回调', res);
        },//上传成功回调函数
        errorFunc : function(res) {
            console.log('失败回调', res);
        },//上传失败回调函数
        deleteFunc : function(res) {
            console.log('删除回调', res);
        }//删除文件回调函数
    });

然后 打开 easyUpload.js 。大概在292行,把整个  if (option.formParam) { } 的判断条件改成下面的代码。注意那个 ‘objId’ 是我formparam中的值,你们改成你自己的。改好之后运行项目,大功告成。

 if (option.formParam) {
                debugger
                var objId = 0;
              //先取出datagrid的id选择器的 id, 
                  var $idSelected = option.formParam['gridId'];
                if($idSelected){
                    //通过id选择器获取 选中行id主键
                    var obj = $('#'+ $idSelected).datagrid('getSelected');    
                       if (obj){
                           objId = obj.id;
                       }
                }
                for (key in option.formParam) {
                    if(key == 'objId'){            //objId 是我formparam 的key ,你可以改成你的
                        fd.append(key, objId);
                    }else{
                        fd.append(key, option.formParam[key]);
                    }
                }
              }

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值