ASP.Net、JQuery、BlockUIを使用して、ファイルのダウンロードダイアログが表示された後にUIのブロックを解除しようとしています。
エクスポートボタンがクリックされたときにUIをブロックします。
<script type="text/javascript">
$(document).ready(function(){
$('#<%= BtnExport.ClientID%>').click(function(){
$.blockUI();
});
});
</script>
この後、次を使用してファイルサーバー側を生成します。
private void SendFileToUser(byte[] file, string contentType, string filename)
{
Response.Clear();
Response.ContentType = contentType;
Response.AppendHeader("Content-Disposition", "attachment; filename="+filename);
Response.OutputStream.Write(file,0,file.Length);
Response.OutputStream.Flush();
Response.End();
}
このコードが実行されたら、UIのブロックを解除したいと思います。
私はさまざまなオプションを検討しました:
- Ajax呼び出しを使用してポーリングし、ファイルが生成されているかどうかを確認します。
- ファイルをセッションに保存し、同じページにリダイレクトしてからダウンロードを生成します。
しかし、どちらのオプションも厄介なように思われます。ファイルダイアログを処理したり、ファイルダイアログを待ったりするための賢いJavaScriptの方法が必要だと思います。
助言がありますか?