阅读:1448
回复:1
|
附件默认是允许多个文件批量上传,有什么办法可以设置附件只允许...
附件默认是允许多个文件批量上传,有什么办法可以设置附件只允许单个文件上传的啊?
|
1楼#
发布于:2017-05-18 16:28
官方有预留一个多选的选项,可能是实现太麻烦,最后隐藏了。
图片:fujian.PNG 我尝试实现了一下,如果要做到直接替换有点麻烦。 曲线实现方式是,只要存在一个附件就隐藏上传按钮,删除附件以后再显示按钮。 实现方法如下: 1.修改SheetControls.js文件,增加多选的设置让多选参数可以传递进去。 SheetAttachment的DesignProperties下增加如下参数 { Name: "Multiple", Description: "获取或设置是否多选", DefaultValue: true, ValueRange: [true, false] } 图片:fujian1.PNG 2.修改SheetAttachment.js文件 2.1 修改NotHtml5Render 和Html5Render 函数,在加载时如果单选且存在一个附件,则不显示上传按钮。在函数最后增加如下代码。 NotHtml5Render : if (!this.Multiple && this.Files > 0) { this.BtnUpload.hide(); } Html5Render : if (!this.Multiple && this.Files > 0) { this.ActionPanel.hide(); } 2.2 修改AddFiles函数,原有设计时只要单选,全部清空html,会导致控件被删掉,无法进行后面操作。 if (!this.Multiple) { //this.ClearFiles(); if ((this.IsHtml5)) { this.ActionPanel.hide(); } else { this.BtnAdd.hide(); } } 2.3 修改RemoveFile函数,当单选且文件都删除的时候显示上传按钮,在函数最后增加如下代码。 if (!this.Multiple && this.Files == 0) { if ((this.IsHtml5)) { this.ActionPanel.show(); } else { this.BtnAdd.show(); } } 3.在需要的附件字段中增加 data-multiple="false" 属性. 此时如果清除一下浏览器的缓存,重新登录后台界面,附件就会多出一个多选的属性,如图。 图片:shuxing.PNG |
|