- - PR -
ファイルのダウンロードダイアログを表示させる方法
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-02-25 13:29
回答ありがとうございます。
ご指摘の通り [default.aspx]で xmlhttp.open("GET","default.aspx?パラメータ , true); xmlhttp.send(''); [default.aspx.cs]で パラメータを判断し該当ダウンロードファイルをResponse.WiteFileで返していました。 window.open("default.aspx"); を実行してみましたが、同じページがもう1枚表示されただけで、ファイルのダウンロードダイアログは表示されませんでした。 なにかやり方が違っていると思うのですが・・・・ よろしくお願いします。 |
|
投稿日時: 2008-02-25 13:36
一度送信したのですが、反映されなかったみたいなので、再度送信します。
回答ありがとうございます。 ご指摘の通り [default.aspx]で xmlhttp.open("GET","default.aspx?パラメータ , true); xmlhttp.send(''); [default.aspx.cs]で パラメータを判断し該当ダウンロードファイルをResponse.WiteFileで返していました。 window.open("default.aspx"); を実行してみましたが、同じページがもう1枚表示されただけで、ファイルのダウンロードダイアログは表示されませんでした。 なにかやり方が違っていると思うのですが・・・・ よろしくお願いします。 |
|
投稿日時: 2008-02-25 13:43
?パラメータのパラメータを付け忘れていませんか?
あとですね、XmlHttpRequestの利点としてサーバーとの非同期通信にあります。 これはユーザーに意識させることなく、サーバーとの通信を行うわけです。 つまりダウンロードダイアログを表示する(ユーザーに知らせる)事とは 相反する立場になるわけです。 なので「ダイアログを表示せずファイルをダウンロードさせたい」場合に 有効な手法であり「ダイアログを表示する」場合には、 お勧め出来ない事を、申し上げておきます。 |
|
投稿日時: 2008-02-25 15:32
回答ありがとうございます。
ご指摘通りでパラメータを忘れていましたので window.open("default.aspx?test.csv"); としましたが、結果は同じで同じページをもう一枚表示する結果となってしまいました。そこで window.open("test.csv"); としたところ、IEの中にExcelが開きCSVファイルを表示しました。 結局ダウンロードダイアログは開きませんでした。 最初に教えて頂いた、キーダウンイベントをボタンのクリックイベントに変換する方法しかないのでしょうか? よろしくお願いいたします。 |
|
投稿日時: 2008-02-25 16:23
「キー押下時にボタン押下時と同じようにファイルをダウンロードしたい(処理したい)」
上記を満たす最もスマートな方法は、キー押下をボタン押下とする事であり 最初に回答したとおり、ボタン.click()を呼び出すべきです。 私は、これが一番スマートであると考えます。 |
|
投稿日時: 2008-02-25 16:28
ありがとうございました。
ほんとに助かりました。 |