|
分類:[ASP.NET (C#)]
ASP.NET
C#
お世話になっております。
現在、ダウンロードファイルをサーバーで作成後、ダウンロードする動作を行っています。
この時、作成中はボタンや画面をロックしたいと考えております。
ダウンロード処理(作成からレスポンスを閉じるまで)に入るときに、ボタンを無効化することは画面を分割することで可能です。
ですが、DL処理終了後、ボタンを有効化するところで詰まっています。
download.aspx の状態を取得できるのであれば対応できると思うのですが、可能でしょうか?
また、download.aspx からリダイレクトすることも考えましたが、ファイルを返すのでjavascriptの埋め込みができないと考えています。
目的はダウンロード中の画面制御で、現状のコードにはこだわりません。
「こうすればボタンの有効化・無効化が簡単にできる!」という場合は、その方法をご教授いただけたら幸いです。
よろしくお願いします。
main.aspx.cs メインのページ
-----------------------------------------------------------------------------------------------
using System;
using System.Web.UI;
namespace DownloadAndLoadSample
{
public partial class main : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
btnDownload.Enabled = true;
btnDownload.Text = "ダウンロード開始";
}
}
protected void btnDownload_Click(object sender, EventArgs e)
{
ClientScriptManager cs = Page.ClientScript;
cs.RegisterStartupScript(Page.GetType(), "open", "<script type='text/javascript'>document.location.href='download.aspx'</script>", false);
btnDownload.Enabled = false;
btnDownload.Text = "ダウンロード中";
}
}
}
-----------------------------------------------------------------------------------------------
download.aspx.cs ダウンロードのページ
-----------------------------------------------------------------------------------------------
using System;
namespace DownloadAndLoadSample
{
public partial class download : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//DUMMY ダウンロードファイル(file.txt)の作成処理
System.Threading.Thread.Sleep(5000);
Response.ContentType = "text/plain";
Response.AddHeader("Content-Disposition", "attachment; filename=file.txt");
Response.WriteFile("~/file.txt");
Response.Flush();
Response.End();
}
}
}
-----------------------------------------------------------------------------------------------
|