2009-07-16 6 views
4

私のC#ファイルにResponse.writeというExcelファイルを作成しています。ファイルを作成するのに1〜2分かかります。ファイルの生成が進行中であることを示すためにUpdateProgressを使用したいと思います。しかし、UpdateProgressを使用すると、ファイルは生成されません。ASP.NETでResponse.writeを使用してファイルを生成中にupdateprogressを使用する

ここに何か不足している場合は教えてください。

+0

Response.write()のときに同じことをチェックしてエラーが発生しました。なぜこのエラーが発生するのか心配です。 –

答えて

0

UpdateProgress Control Overviewを参照してください:

UpdateProgressコントロールがのUpdatePanelコントロールで部分ページ アップデートに関する のステータス情報を提供します。

UpdatePanelの一部のページの更新はありますか?

+0

はい、部分ページの更新です。プロセスが進行中のとき、私はupdateprogressが回転しているのを見ることができますが、Response.Write()で一度停止するとファイルは生成されません。 –

+0

例外はありますか?イベントログを確認します。 –

+0

申し訳ありませんがジョン、賛辞はありません。 Response.Write()はサーバーサイドのコードです。 –

3

これは、応答オブジェクトおよび/または基本的な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つのページがあります。

+0

詳細な説明をいただきありがとうございます。カスタム定義のプログレスバーを使用しました。 –

関連する問題