ModalPopupExtenderがResponse.Writeすると閉じない?ASP.NET Webアプリケーション

ModalPopupExtender が ボタンの中で、Response.Write, Response.Flush, Response.End すると閉じないんです。

ちょっと理由を調べてみました。

スポンサーリンク

ModalPopupExtender が Response.Write すると閉じない?

以前、調べたのですが、ModalPopupExtender は、ボタンを UpdatePanel の外に置けば閉じるようです。

UpdatePanelを使うとModalPopupExtender が閉じない (クローズしない)
この度、Ajax Control ToolkitでUpdatePanelを使うと、ボタンを押しても、ModalPopupEx...

ところが、UpdatePanel の外に置いてあるボタンであっても、Response.Write, Response.Flush, Response.End を実行するとそのダイアログは閉じないようです。

本件、調べてみる限り、この動きは仕様のようです。

ここには、次のように書いてあります。

http://stackoverflow.com/questions/17951491/closing-a-modelpopup-after-sending-a-file

The problem is that Response.End(); kills all action (well, as it should), so the modal window itself doesn't close.

(Response.End()はすべてのアクションを止めます。よってモーダルダイアログは閉じません。)

よって、ボタンを押すことで、Response.WriteしてExcel出力をするとかの処理を行っていた場合、ダイアログを閉じる処理は別のスレッドを使って行う必要があります。

スポンサーリンク
スポンサーリンク
Translate »