V3.5之后的版本grid的colunm上放了附件组件后可以自己显示附件名
如果列设置的可编辑模式点击后会显示附件组件,可以通过组件操作附件;如果列是不可编辑的点击名字要显示下载需要如下处理:
1.在grid的onCellRender事件中判断是附件这列并且有值时解析json数据获取文件名等相关的信息,然后用a标签显示
2.下载附件可以在a标签的onClick中调用函数实现
onCellRender中的实现:
Model.prototype.grid1CellRender = function(event) { if (event.colName === "fFJ" && event.colVal !== undefined) {//判断是附件这列并且有值 var jsonList = eval("("+event.colVal+")");//把值转换为json对象 var html = ""; if (jsonList.length > 0) { for (var i = 0; i < jsonList.length; i++) {//遍历json对象获取doc相关的信息 var fileID = jsonList[i]["fileID"]; var fileName = jsonList[i]["docName"]; var docPath = jsonList[i]["docPath"]; html += "<a onclick='justep.Bind.contextFor(this).$model.DownFile(\"" + fileID + "\",\"" + docPath + "\")'>" + fileName + "</a>"+"</br>";//用a标签显示文件名,并在onClikc中调用实现下载(需要把下载用的数据传过去) } return event.html = html; } } };
onClick调用的名字为DownFile函数的实现
Model.prototype.DownFile = function(fileID,docPath){//通过传的fileID和docPath的值调用API实现下载 DocUtils.InnerUtils.downloadDocByFileID({ docPath:docPath, fileID:fileID, context:this.getContext() }); }
调用API实现下载需要添加引用var DocUtils = require(‘$UI/system/components/justep/docCommon/docUtil’);
评一波