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’);
评一波