分類:[ASP.NET (C#)]
2016/03/05(Sat) 02:35:59 編集(投稿者)
2016/03/05(Sat) 02:35:15 編集(投稿者)
2016/03/05(Sat) 02:33:45 編集(投稿者)
<pre><pre>ASP.NET(Webフォーム/C#)にて、
以下のようにExcelファイルをダウンロードする処理を実行するボタン押下時に
2度押しの制御を行いたいのですが、ファイルダウンロードのレスポンスしか返ってこないため(※理由は、以降"Bダウンロード&画面更新URL"に記載されています)、ずっと"処理中"のままとなります。
同じような経験をされた方はいますでしょうか?
どのように対応されたかを教えていただきたいです。
--------------------------------
【実装した内容】
@(C#側※webフォーム側)
protected void Button1_Click(object sender, EventArgs e)
{
Response.WriteFile(@"C:\work\sample.xlsx");
Response.ContentType = "application/vnd.ms-excel";
Response.HeaderEncoding = Encoding.GetEncoding("shift_jis");
Response.ContentEncoding = Encoding.GetEncoding("shift_jis");
Response.AddHeader("content-disposition", "attachment; filename=sample.xlsx");
Response.Flush();
Response.End();
}
AJavaScriptで2度押し防止のサンプル
http://d.hatena.ne.jp/itaosan/20061225/1167025092
→この制御を実装し、ダウンロードボタンを押下したところ、永遠に"処理中です。。。"になる。
--------------------------------
また、以下の参考URLにて、
ダウンロードと同時に画面更新も同時に行うサンプルがあり、
そこの"質問&回答"にて私がやりたいことをこのサンプルを利用し実現した方もいるようですが、
どのように実現したのかが、私の技術力ではわかりませんでした。
具体的な対応内容を理解できる方いますでしょうか?
------------------------------------------------
Bダウンロード&画面更新URL
http://niyodiary.cocolog-nifty.com/blog/2009/07/aspnetc-20a1.html
(抜粋)
画面でボタン押下時に「しばらくお待ちください」のポップアップメッセージを出し
Excel出力が終わったらポップアップを消す、という動作をさせたくて
「例2 隠しiframeタグ内にダウンロードページを開く」
の方法を参考にさせていただきました。
Excelの出力もでき、ポップアップも消せたのですが・・・
------------------------------------------------
簡潔な質問になってしまい、
申し訳ありませんが、よろしくお願いします。