1

ASP.net を介して Excel 機能へのエクスポートを実装しています。ページにボタン コントロールがあります。ボタンをクリックすると、コントロールはボタンのクリックイベントに移動します。そこで、ストアド プロシージャを呼び出して Excel データを取得します。Click イベント (codebeind) では、データを Excel ファイルにダウンロードするためのコードを以下に示します。

Response.Clear()
Response.AddHeader("content-disposition", String.Format("attachment;filename={0}.csv", "Report"))
Response.Charset = ""
Response.ContentType = "application/vnd.xls"
Response.Write("a,b,c") - sample output from SP.
Response.Flush();

これらはすべて正常に動作します。問題は、手順の実行に時間がかかる場合があるため、ダウンロードが開始されるまでユーザーがUIを台無しにしないようにするために、ダウンロードボタンがクリックされたときにUIを無効にするjavascriptコードがあります. これも問題なく動作しています。しかし、ダウンロードが開始された後、またはダウンロードが開始される直前に、JavaScript コードを呼び出して UI を再度有効にすることはできません。response.clear(上記のコード)の前にスクリプトをレンダリングしてresponse.flushを提供しようとすると、クライアントに送信された応答ヘッダーを変更できないというエラーが表示されます。どうすればこの機能を実現できますか?

質問の要約? ユーザーがダウンロード ボタンをクリックしてから実際のダウンロードが開始されるまで、UI を無効にしたいと考えています。ダウンロードが開始したら、UI を有効に戻したいと思います。どうすればこれを達成できますか。

ありがとう。

4

0 に答える 0