C# ファイルでExcel ファイルをResponse.write
作成していますが、ファイルの作成に 1 ~ 2 分かかります。UpdateProgress
ファイル生成が進行中であることを示すために使用したいと思います。しかし、使用するUpdateProgress
と、ファイルが生成されません。
ここで何か不足している場合はお知らせください。
C# ファイルでExcel ファイルをResponse.write
作成していますが、ファイルの作成に 1 ~ 2 分かかります。UpdateProgress
ファイル生成が進行中であることを示すために使用したいと思います。しかし、使用するUpdateProgress
と、ファイルが生成されません。
ここで何か不足している場合はお知らせください。
これは、応答オブジェクトや基本的なHTTPリクエスト構造を誤解していることが原因だと思います。
あなたのリクエスト:GET /buildXLS.aspx
サーバー1の応答:/*ファイルダウンロードのヘッダー情報*//*ファイルデータ*/
サーバー2の応答:/*HTMLページの聞き手情報*/<div>更新中...</div>/*ファイルデータ*/
サーバー1のように振る舞おうとすると、応答でデータを送り返すことはできませんが、ファイル自体(および適切なヘッダー)を送り返すことができます。サーバー2のように振る舞おうとすると、ダウンロードしているページはHTMLとして扱われ、XLSではなく「text / html」転送を示すヘッダーが書き込まれているため、ファイルデータは表示されません。実際、何らかの理由で応答をフラッシュすると、それ以上書き込むことはできなくなります。
シナリオが機能する状況を確認できますが、相互作用する2つのページとしてのみです。1ページ目は進行状況メッセージを表示し、2ページ目は新しいウィンドウを開きます。2ページ目はXLSビルドを開始し、1ページ目をトリガーして進行状況メッセージを非表示にします。完了です。これで、同じ応答内でHTML更新とファイルのダウンロードの両方を送信しようとするのではなく、送信しようとしている2セットのヘッダーに一致する2つのページができました。
UpdateProgress コントロールの概要を参照してください。
UpdateProgress コントロールは、UpdatePanel コントロールの部分ページ更新に関するステータス情報を提供します。
UpdatePanel で部分的なページ更新を行っていますか?