私のC#ファイルにResponse.write
というExcelファイルを作成しています。ファイルを作成するのに1〜2分かかります。ファイルの生成が進行中であることを示すためにUpdateProgress
を使用したいと思います。しかし、UpdateProgress
を使用すると、ファイルは生成されません。ASP.NETでResponse.writeを使用してファイルを生成中にupdateprogressを使用する
ここに何か不足している場合は教えてください。
私のC#ファイルにResponse.write
というExcelファイルを作成しています。ファイルを作成するのに1〜2分かかります。ファイルの生成が進行中であることを示すためにUpdateProgress
を使用したいと思います。しかし、UpdateProgress
を使用すると、ファイルは生成されません。ASP.NETでResponse.writeを使用してファイルを生成中にupdateprogressを使用する
ここに何か不足している場合は教えてください。
はUpdateProgress Control Overviewを参照してください:
UpdateProgressコントロールがのUpdatePanelコントロールで部分ページ アップデートに関する のステータス情報を提供します。
UpdatePanelの一部のページの更新はありますか?
はい、部分ページの更新です。プロセスが進行中のとき、私はupdateprogressが回転しているのを見ることができますが、Response.Write()で一度停止するとファイルは生成されません。 –
例外はありますか?イベントログを確認します。 –
申し訳ありませんがジョン、賛辞はありません。 Response.Write()はサーバーサイドのコードです。 –
これは、応答オブジェクトおよび/または基本的なHTTP要求構造を誤解していると思います。
あなたの要求:GET /buildXLS.aspx
サーバ1つの応答:/ *ファイルのダウンロードのためのヘッダ情報*// *ファイルのデータ*/
サーバ2応答:HTMLページ用/ * hearder情報*/< divの>更新... </divの>/*ファイルのデータ*/
サーバー1のように行動しようとした場合、あなたが戻って応答上の任意のデータを送信することはできませんが、ファイル自体(および適切なヘッダー)。サーバー2のように行動しようとすると、ダウンロードしているページがHTMLとして扱われ、XLSの代わりに「text/html」転送を示すヘッダが書き込まれるため、ファイルデータは表示されません。実際、何らかの理由でレスポンスを流したら、もうそれを書くことはできません。
2つの対話型ページ(ページ1は進行メッセージが表示され、新しいウィンドウ(ページ2)が開きます)が表示されます。ページ2はXLSビルドを開始し、ページ1を非表示にします完了時に進捗メッセージを表示します。同じ応答内でHTMLアップデートとファイルダウンロードの両方を送信しようとするのではなく、送信しようとしている2つのヘッダーセットと一致する2つのページがあります。
詳細な説明をいただきありがとうございます。カスタム定義のプログレスバーを使用しました。 –
Response.write()のときに同じことをチェックしてエラーが発生しました。なぜこのエラーが発生するのか心配です。 –