我有一个带有列的网格面板,如果您单击该列,则下载与该行关联的文件。在 extjs 2 中,我只定义了一个新的渲染器,它是一个只返回返回字符串格式的函数,如下所示:
function DownaloadFile(value, metadata, record, rowIndex, colIndex, store)
if (record.data.id){
return String.format('<b><a href="<c:url value='/fileDownload.action?id={0}'/>" title="<fmt:message key='button.table.file.download.tooltip'/>"><img src="<c:url value="/icons/icon_download.gif"/>"/></a></b>',record.data.id);
}
这种语法在 ExtJS4.2 中是不正确的,因为 String.format 现在是 Ext.String.format 但是当我做出这个改变时没有任何事情发生。
我尝试以这种方式在列定义中使用新的 actioncolumn:
{
xtype:'actioncolumn',
text: "download",
width:80,
items: [{
sortable: false,
align:'center',
iconCls: 'download_icon',
hrefTarget: '_blank',
handler: function(grid, rowIndex, colIndex) {
var rec = reportPanel.getStore().getAt(rowIndex);
return Ext.String.format('<b><a href="<c:url value='/fileDownload.action?id={0}'/>" title="download.tooltip"></a></b>',rec.id);
}
}]
}
但有些地方是错误的,因为 javascript 调试器没有产生任何类型的错误。提前致谢。