C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[12]: Response.Redirectでtarget指定


(過去ログ 16 を表示中)

[トピック内 13 記事 (1 - 13 表示)]  << 0 >>

■5933 / inTopicNo.1)  Response.Redirectでtarget指定
  
□投稿者/ あわわ (8回)-(2007/07/26(Thu) 15:24:08)

分類:[.NET 全般] 

お願い致します。

Response.RedirectでURLを指定してフレームに表示させたいんですが
可能なんでしょうか?

よろしくお願い致します。
引用返信 編集キー/
■5934 / inTopicNo.2)  Re[1]: Response.Redirectでtarget指定
□投稿者/ 刈歩 菜良 (70回)-(2007/07/26(Thu) 15:30:49)
刈歩 菜良 さんの Web サイト
普通のやり方では無理だと思いますよ。
フレーム指定はクライアント側でリンクがクリックされたタイミングでやらなければいけないので、クライアントサイドマターです。

サーバサイドを呼び出すところでフレームを指定する仕組みを考えるべきだと思います。

ちなみに、その処理はどうやって呼び出されますか?
引用返信 編集キー/
■5935 / inTopicNo.3)  Re[2]: Response.Redirectでtarget指定
□投稿者/ あわわ (9回)-(2007/07/26(Thu) 15:40:35)
No5934 (刈歩 菜良 さん) に返信
> 普通のやり方では無理だと思いますよ。
> フレーム指定はクライアント側でリンクがクリックされたタイミングでやらなければいけないので、クライアントサイドマターです。
>
> サーバサイドを呼び出すところでフレームを指定する仕組みを考えるべきだと思います。
>
> ちなみに、その処理はどうやって呼び出されますか?
ボタンを押した中での処理でクエリと一緒に値を渡してます
引用返信 編集キー/
■5936 / inTopicNo.4)  Re[3]: Response.Redirectでtarget指定
□投稿者/ 刈歩 菜良 (71回)-(2007/07/26(Thu) 15:56:33)
刈歩 菜良 さんの Web サイト
>>ちなみに、その処理はどうやって呼び出されますか?
> ボタンを押した中での処理でクエリと一緒に値を渡してます
もしそのページのすべてのボタンが同じフレーム先に表示されるのであれば、FORMタグにtargetを書き込めます。
<form id="form1" runat="server" target="test">

引用返信 編集キー/
■5937 / inTopicNo.5)  Re[4]: Response.Redirectでtarget指定
□投稿者/ あわわ (11回)-(2007/07/26(Thu) 16:07:22)
No5936 (刈歩 菜良 さん) に返信
> >>ちなみに、その処理はどうやって呼び出されますか?
>>ボタンを押した中での処理でクエリと一緒に値を渡してます
> もしそのページのすべてのボタンが同じフレーム先に表示されるのであれば、FORMタグにtargetを書き込めます。
> <form id="form1" runat="server" target="test">
>
ありがとう御座います。ボタンを押したときでの処理は出来ましたが、当然なんですがpageload内でresponse.redirectでやるとスレッドを中止しましたとエラーが出てしまいます。これはやはり無理でしょうか?
引用返信 編集キー/
■5938 / inTopicNo.6)  Re[5]: Response.Redirectでtarget指定
□投稿者/ 刈歩 菜良 (72回)-(2007/07/26(Thu) 16:12:54)
刈歩 菜良 さんの Web サイト
> ありがとう御座います。ボタンを押したときでの処理は出来ましたが、当然なんですがpageload内でresponse.redirectでやるとスレッドを中止しましたとエラーが出てしまいます。これはやはり無理でしょうか?

もしかして、TRY-CATCHでExceptionをキャッチしてらっしゃいますか?
Response.Redirectをつかうと、必ずThreadAbortExceptionを発生します。
http://msdn2.microsoft.com/ja-jp/library/t9dwyts4(VS.80).aspx
これはResponse.Redirectを実行することによってポストバックされたページの表示を中断して、ブラウザにRedirect命令を返すので、必ず発生するものです。
エラーではないので、スルーして問題ないです。
引用返信 編集キー/
■5939 / inTopicNo.7)  Re[6]: Response.Redirectでtarget指定
□投稿者/ あわわ (12回)-(2007/07/26(Thu) 16:47:44)
No5938 (刈歩 菜良 さん) に返信
>>ありがとう御座います。ボタンを押したときでの処理は出来ましたが、当然なんですがpageload内でresponse.redirectでやるとスレッドを中止しましたとエラーが出てしまいます。これはやはり無理でしょうか?
>
> もしかして、TRY-CATCHでExceptionをキャッチしてらっしゃいますか?
> Response.Redirectをつかうと、必ずThreadAbortExceptionを発生します。
> http://msdn2.microsoft.com/ja-jp/library/t9dwyts4(VS.80).aspx
> これはResponse.Redirectを実行することによってポストバックされたページの表示を中断して、ブラウザにRedirect命令を返すので、必ず発生するものです。
> エラーではないので、スルーして問題ないです。

ありがとう御座います、、、が
pageloadの場合targetが反映されていません。なのでそのページでそのまま表示されてしまっています・・・
どうにかなるでしょうか?
引用返信 編集キー/
■5944 / inTopicNo.8)  Re[7]: Response.Redirectでtarget指定
□投稿者/ 刈歩 菜良 (73回)-(2007/07/26(Thu) 17:56:57)
刈歩 菜良 さんの Web サイト
> ありがとう御座います、、、が
> pageloadの場合targetが反映されていません。なのでそのページでそのまま表示されてしまっています・・・
> どうにかなるでしょうか?
Page_LoadでのResponse.Redirect使用要件がよく分かりません。
どういうときにPage_LoadでResponse.Redirectを使うのでしょうか?
引用返信 編集キー/
■5946 / inTopicNo.9)  Re[8]: Response.Redirectでtarget指定
□投稿者/ あわわ (13回)-(2007/07/26(Thu) 18:15:37)
No5944 (刈歩 菜良 さん) に返信
>>ありがとう御座います、、、が
>>pageloadの場合targetが反映されていません。なのでそのページでそのまま表示されてしまっています・・・
>>どうにかなるでしょうか?
> Page_LoadでのResponse.Redirect使用要件がよく分かりません。
> どういうときにPage_LoadでResponse.Redirectを使うのでしょうか?

要点だけ申しますと
フレームをA Bと二つに分けていてBが検索画面で検索結果の行数すべてにリンクをはりそれぞれクリックしてAに詳細を表示しています。
なので最初の状態はAは空になるので、Bの検索画面から一番上に表示されているリンクをとりあえず表示しておきたいんです。
なのでBからの一番上の値(毎回違います)をAにページロードから渡したいんです。
引用返信 編集キー/
■5947 / inTopicNo.10)  Re[9]: Response.Redirectでtarget指定
□投稿者/ 刈歩 菜良 (74回)-(2007/07/26(Thu) 18:35:16)
刈歩 菜良 さんの Web サイト
> 要点だけ申しますと
> フレームをA Bと二つに分けていてBが検索画面で検索結果の行数すべてにリンクをはりそれぞれクリックしてAに詳細を表示しています。
> なので最初の状態はAは空になるので、Bの検索画面から一番上に表示されているリンクをとりあえず表示しておきたいんです。
> なのでBからの一番上の値(毎回違います)をAにページロードから渡したいんです。
で、あれば、「Bの検索画面から一番上に表示されているリンクをとりあえず表示」するためにA側のフレームでBを呼び出せばよいのではないでしょうか?(GETで情報を渡すなどして、どちらの表示なのかは区別できるでしょう)

上記の要件だと、あえて別フレームから呼び出す必然性はないように思いますので。
引用返信 編集キー/
■5948 / inTopicNo.11)  Re[10]: Response.Redirectでtarget指定
□投稿者/ あわわ (14回)-(2007/07/26(Thu) 19:36:37)
No5947 (刈歩 菜良 さん) に返信
>>要点だけ申しますと
>>フレームをA Bと二つに分けていてBが検索画面で検索結果の行数すべてにリンクをはりそれぞれクリックしてAに詳細を表示しています。
>>なので最初の状態はAは空になるので、Bの検索画面から一番上に表示されているリンクをとりあえず表示しておきたいんです。
>>なのでBからの一番上の値(毎回違います)をAにページロードから渡したいんです。
> で、あれば、「Bの検索画面から一番上に表示されているリンクをとりあえず表示」するためにA側のフレームでBを呼び出せばよいのではないでしょうか?(GETで情報を渡すなどして、どちらの表示なのかは区別できるでしょう)
>
> 上記の要件だと、あえて別フレームから呼び出す必然性はないように思いますので。

かなりパフォーマンスの思い処理なのでもう一度処理をするものを作成するよりも値を渡してしまったほうがいいかなとおもったので・・・
やはりそれがいちばん堅実なのでそうします。ありがとうございました
引用返信 編集キー/
■5949 / inTopicNo.12)  Re[11]: Response.Redirectでtarget指定
□投稿者/ あわわ (15回)-(2007/07/26(Thu) 19:39:55)
No5948 (あわわ さん) に返信
> ■No5947 (刈歩 菜良 さん) に返信
> >>要点だけ申しますと
> >>フレームをA Bと二つに分けていてBが検索画面で検索結果の行数すべてにリンクをはりそれぞれクリックしてAに詳細を表示しています。
> >>なので最初の状態はAは空になるので、Bの検索画面から一番上に表示されているリンクをとりあえず表示しておきたいんです。
> >>なのでBからの一番上の値(毎回違います)をAにページロードから渡したいんです。
>>で、あれば、「Bの検索画面から一番上に表示されているリンクをとりあえず表示」するためにA側のフレームでBを呼び出せばよいのではないでしょうか?(GETで情報を渡すなどして、どちらの表示なのかは区別できるでしょう)
>>
>>上記の要件だと、あえて別フレームから呼び出す必然性はないように思いますので。
>
> かなりパフォーマンスの思い処理なのでもう一度処理をするものを作成するよりも値を渡してしまったほうがいいかなとおもったので・・・
> やはりそれがいちばん堅実なのでそうします。ありがとうございました
解決済み
引用返信 編集キー/
■5957 / inTopicNo.13)  Re[12]: Response.Redirectでtarget指定
□投稿者/ 刈歩 菜良 (75回)-(2007/07/27(Fri) 01:42:04)
刈歩 菜良 さんの Web サイト
すでに解決されていますが、一点だけ。

>>かなりパフォーマンスの思い処理なのでもう一度処理をするものを作成するよりも値を渡してしまったほうがいいかなとおもったので・・・
>>やはりそれがいちばん堅実なのでそうします。ありがとうございました
Response.Redirectはブラウザに対して「どこそこのページにアクセスしなおしてください。」という命令を返すものです。
例えば、first.aspxというページでResponse.Redirect("second.aspx")と書かれているとすると、
・first.aspx が呼び出されて処理を開始。
・Response.Redirectで処理が中断され、ブラウザに「second.aspxにアクセスしなおしなさい」というリダイレクト命令が返されます。
・ブラウザが再度second.aspxにアクセスしなおし。
・second.aspxが実行される。
つまり、もともとあわわさんが想定されていた動きだと返って無駄なやり取りや処理が発生するのです。

現実世界で言うと、いわゆる「たらいまわし」です。
ある会社の窓口に電話したら、「その件はxxx-xxxxにかけ直して下さい。」といわれて、がちゃんと電話を切られてしまうのがResponse.Redirectの動きです。

パフォーマンスの面からいっても、今回の場合はResponse.Redirectは適なさいということになります。
それ以前に、Response.Redirectで処理が中断されるので、そもそも不可能な処理ですが...
# ちなみに、遷移の仕方にはServer.Transferというのもあります。今回は解決済みされてるので、説明は省略します。ご興味あれば、ググってみてください。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -