2011-10-26 15 views
0

私はモーダルウィンドウです。Response.BinaryWriteとResponse.Writeはポップアップから

私は、ashxファイルを指すハイパーリンクを持っています。

このashxファイルを使用してResponse.BinaryWriteをダウンロードしてファイルをプッシュし、次にモーダルを閉じたいとします。

の事は、私が

Response.BinaryWrite(myFile); 
Response.("<script type='text/javascript'>window.close();</script>"); 

を使用している場合、それは動作しません

ということです。

私は

Response.("<script type='text/javascript'>window.close();</script>"); 

おろか場合、それは動作します。

これにはどのような解決策がありますか?あなたのラインが上記の二つの異なることを行うため

THX

+0

これは単純です。 Webページからashxに移動します。正しいコンテンツタイプを設定し、バイナリ書き込みを行います。コンテンツタイプはapplication/pdfです。新しいブラウザウィンドウを開こうとするのではなく、ブラウザが開くか、ファイルを保存するかどうかを尋ねます。 – Asken

答えて

2

はいいえ、解決策はありません。

最初の行は、基本的にユーザーにファイルをストリーミングしています。ユーザーが表示されるダイアログに応答するまで(彼は画面に保存または表示することを選択します)、何もできません。自動的にユーザーのダイアログを閉じようとしているようですが、サーバー側のコードからユーザーのブラウザーを制御することはできません。

2行目は、ブラウザウィンドウを閉じるように指示するjavascriptコードを送信しているため動作します。同じ応答ストリームでこれらの2つのことを絡み合わせることはできません。

+0

まだそれは基本的に私がそれがちょうどうまくいかないと思っていたものです。私は確かにしたいと思った。私は別のアプローチを思いついてみよう。 – GillouX

1

私はあなたが間違ったアプローチを選択していると思います。 AFAIKバイナリ書き込みを使用してバイナリをクライアントに送信します。すなわち、pdf クライアントは、バイナリストリームの終わりにjavascriptも送信することを理解しません。 バイナリデータとスクリプトを組み合わせることはできません

関連する問題