- - PR -
ASP.NET メッセージ表示後のPDF表示について
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-04-12 15:41
お世話になります。
OS:WindowsXP 言語:VS2005 ASP.NET(Web Application) エラーの原因も対応策も見つけているのですが、解決する方法がどうしても見つかり ません。以下の内容について、何か方法がございましたら教えて頂きたいと思います。 よろしくお願いします。 <現象> 登録画面で、メッセージ表示後にPDFファイルを表示する画面を作成しています。 しかし、PDFを表示してブラウザ「戻る」ボタンを押すと、再度同じメッセージが 表示されてしまいます。 <画面> ・登録画面(aspx) ・PDF表示画面(aspx) <処理内容> 1、登録画面(aspx) ・「登録」ボタンをクリックすると、「登録しました」のメッセージ表示。 Page.ClientScript.RegisterStartupScript(Page.GetType(), "MSG", _ "<script language=""javascript"">alert('登録しました');</script>") ・「PDF表示」ボタンをクリックすると、PDF表示画面(aspx)を表示 Server.Transfer("PDF表示画面.aspx") 2、PDF表示画面(aspx)※ツールは一切配置していない画面 ・Page_Laod時に、登録画面の情報を元にPDFファイルを作成し表示する。 ※「PDF」に関しては、「Crystalreport」ではなく別のPDF作成ソフトを利用 して作成/表示処理を行っています。 <原因> 現在の「Page.ClientScript.RegisterStartupScript」でメッセージを表示すると HTML内に情報が設定されている。その為、ブラウザ「戻る」でバックするとその 情報を読み取り、再度表示されている。 <対応策> 1、PDFを別ウィンドウとして表示する。 2、「Page.ClientScript.RegisterStartupScript」で設定しているメッセージを HTML内から削除する。 ※以前調査したのですが、解決までには至らず保留していた。 以上 | ||||
|
投稿日時: 2006-04-12 23:14
削除するのではなく、書き出さなければいいのでは? | ||||
|
投稿日時: 2006-04-13 07:55
キャッシュを無効にすると解決するのでは?
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE" > _________________ ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集 | ||||
|
投稿日時: 2006-04-13 09:12
お世話になります。
Jittaさん、Accessさん、回答ありがとうございます。 <Jittaさんの返答> >削除するのではなく、書き出さなければいいのでは? 「書き出さない方法」という方法は、どのように行えばよろしいでしょうか? メッセージ表示に関しては、全て「Page.ClientScript.RegisterStartupScript」を 使用しているので、他の方法が分からない状態です。 参考になる情報(サイト等)がありましたら、教えて頂けないでしょうか? <Accessさんの返答> >キャッシュを無効にすると解決するのでは? ><META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE" > この件に関して、実際に試してみたいと思います。 以上 | ||||
|
投稿日時: 2006-04-13 17:56
お世話になります。
><Accessさんの返答> >キャッシュを無効にすると解決するのでは? ><META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE" > Accessさんの返答を元に修正して、メッセージは表示されなくなりました。 しかし今回の対応あり/なしに関わらず、別の問題を見つけてしまいました。 <現象> 「登録」ボタンをクリックして、登録処理終了後にボタン名を「更新」に変更して いるのですが、PDF表示して戻ると名称が「登録」ボタンに戻っている。 現在、頂いた回答を元に再度調査/修正を行っています。でも、うまく動作しません。 「ASP.NETでのメッセージ表示」及び「PDFを別画面で表示する方法」について、 参考となる情報がありましたら再度お願い致します。 以上 | ||||
|
投稿日時: 2006-04-13 18:52
PDFを別ウインドウで表示する。 って言うのはだめですかね・・・ | ||||
|
投稿日時: 2006-04-13 21:52
済みません、問題を読み間違っていました。
「戻る」で戻るから、そうなるんです。もうひとつ戻ると、同じ内容が2つ登録される、、、とか、なりませんか? PDF がブラウザを占領してしまうから、ということかな? だったら、Transfer でなく、Redirect を使ってみましょう。 可能なら、ボタンクリックで別のウインドウを開き、そちらで表示させましょう。 〆 written by Jitta@わんくま同盟 on 2006/04/13 □ Microsoft MVP for Visual Developer ASP/ASP.NET October, 2005 - September, 2006 | ||||
|
投稿日時: 2006-04-14 09:28
お世話になります。
かるあさん、jittaさん、回答ありがとうございます。 以前「PDFを別ウィンドウで表示」を試してみましたが、PDFは表示されず 真っ白な画面表示になってしまいます。 <処理内容> 1、「window.open」でPDF表示画面を表示していました。 2、PDF表示画面(Page_Load)で、PDFファイル作成/表示処理を実行。 PDF作成後に、以下の処理を行っています。 おそらく、ここに問題があると思いプログラムを修正したのですが、PDFが表示さ れることはなくその時は断念しました。 Response.ContentType = "application/pdf" Response.AppendHeader("content-length", UBound(pdfData) - LBound(pdfData) + 1) Response.AppendHeader("content-disposition", "inline; filename=Sample.PDF") Response.BinaryWrite(pdfData) Response.End() 上記の設定で、「PDFを別ウィンドウで表示」する場合問題はないのでしょうか? また「PDFを別ウィンドウで表示」について、参考となる情報がございましたら 教えて頂けないでしょうか? よろしくお願いします。 <jittaさんの返答> > 「戻る」で戻るから、そうなるんです。もうひとつ戻ると、同じ内容が2つ登録 >される、、、とか、なりませんか? > > PDF がブラウザを占領してしまうから、ということかな? > だったら、Transfer でなく、Redirect を使ってみましょう。 調査しましたが、同じ内容が2つ登録されるということはありませんでした。また、 「Transfer」ではなく「Redirect」でもテストしましたが現象は変わりませんでした。 以上 |