ユーザーがグリッドをExcelにエクスポートできるようにするためのグリッドとボタンを含むアプリケーションがあります。サーバーが Excel ファイルで応答したときに、[名前を付けて保存] ダイアログ ボックスを表示できるようにしたいと考えています。サーバーはパラメーターを JSON オブジェクトとして受け入れます。これが私のコードです:-
Ext.Ajax.request({
url: '/export/excel/',
method: 'POST',
//Send the query as the message body
jsonData: jsonStr,
success: function (result,request) {
Ext.DomHelper.append(document.body, {
tag: 'iframe',
frameBorder: 0,
width: 0,
height: 0,
//src:result,
css: 'display:none;visibility:hidden;height:1px;'
});
}, //success
failure: function (response, opts) {
var msg = 'server-side failure with status code: ' + response.status + ' message: ' + response.statusText;
Ext.Msg.alert('Error Message', msg);
}
});
同様の質問 ( ExtJS AJAX save as dialog box ) があることは知っていますが、それはサーバー上の静的ファイルを参照しています。私の場合、送信された json に応じて、結果は毎回異なります。result.responseText に必要な Excel ファイル全体を取得します。ユーザーにオプションとして保存を求めるダイアログ ボックスがポップアップ表示されるようにするには、何をする必要がありますか? また、src
domhelper をどのように構成する必要があるのか わかりません。どんな助けでも本当に感謝しています。