私はExtjsが初めてです。Extjs 4のグリッド パネルのボタンをクリックすると、新しいブラウザ ウィンドウでログ ファイルを開こうとしています。
そのファイルをダウンロードできます。しかし、私はそれをダウンロードしたくありません。そのボタンをクリックすると、新しいブラウザ ウィンドウで開く必要があります。
私はこれをやっています:
{
xtype: 'gridpanel',
id: 'logResultGrid',
margin: '40 0 10 20',
width: 439,
title: 'Logs Result:',
store: 'LogsStore',
viewConfig: {
id: 'logsGrid'
},
columns: [{
xtype: 'gridcolumn',
renderer: function(value, metaData, record, rowIndex, colIndex, store, view) {
var directoryName = Ext.getCmp('logsJobName').getValue();
return '<a href="http://localhost:40889/Snowy/fileDownload/download.htmreportName=' + value + '&directoryName=' + directoryName + '">' + value + '</a>';
},
width: 297,
dataIndex: 'fileName',
text: 'Log Name'
}, {
xtype: 'actioncolumn',
width: 116,
items: [{
handler: function(view, rowIndex, colIndex, item, e) {
var my_record = view.getSelectionModel().getLastSelected();
var directoryName = Ext.getCmp('logsJobName').getValue();
var rec = Ext.StoreMgr.lookup("LogsStore").getAt(rowIndex);
var my_url = 'http://localhost:40889/Snowy/fileDownload/download.htm?reportName=' + rec.data.fileName + '&directoryName=' + directoryName;
// new Ext.Window({
// width: 500,
// height: 500,
// html: '<iframe width="300" height="300" src="' + my_url + '"</iframe>'
// }).show();
window.open(my_url, "_blank");
//});
},
icon: 'resources/images/Open-Folder-Info-icon.png'
}]
}],
selModel: Ext.create('Ext.selection.CheckboxModel', {
})
}
上記を実行することで、renderer
そのファイルをダウンロードできます。そのファイルをダウンロードするために使用しています。新しいブラウザウィンドウでそのファイルを開くには、ハンドラーを使用しています。バックエンドとしてJavaを使用しています。
これで何か間違ったことをしている場合は、私を修正してください。私は過去2日間苦労しています。
前もって感謝します。