0

我有一个带有列的网格面板,如果您单击该列,则下载与该行关联的文件。在 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 调试器没有产生任何类型的错误。提前致谢。

4

1 回答 1

1

(witch 在网格单元格中呈现一个图标或一系列图标,并为每个图标提供一个范围内的单击处理程序) 的属性记录为handleractioncolumn

单击图标时调用的函数。

考虑改用templatecolumn(witch 通过使用配置的 XTemplate 处理模型的数据来呈现值)并将其传递给tpl属性。

于 2013-05-21T11:25:07.793 回答