クリックするとファイルをこの行に関連付ける列を持つグリッド パネルがあります。extjs 2 では、次のような URL の文字列形式のみを返す関数である新しいレンダラーを定義するだけです。
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);
}
String.format が Ext.String.format になったため、この構文は ExtJS4.2 では正しくありませんが、この変更を行っても何も起こりません。
次のように、列定義で新しい 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 デバッガーはエラーを発生させないため、何かがおかしいのです。前もって感謝します。