- PR -

ASP.NETのServer.Transferを使用してのターゲット指定

1
投稿者投稿内容
武稜
会議室デビュー日: 2004/07/07
投稿数: 10
投稿日時: 2005-07-11 14:46
宜しくお願いします。

ASP.NETでの画面遷移についてですが、フレームを切って画面を作成しています。
その場合の画面遷移先のターゲット属性ですが、
通常は遷移先フレームが決まっているので、HTML上(.aspx上)に直接

BASE target="XXXXXX"

と記述していますが、特定の画面だけ「_blank」で開きたい場合に上手くいきません。
新規ウィンドウに情報を渡したいので、[Server.Transfer]を使用しているのですが、
targetの操作方法がわからない状態です。

もしかすると、[Server.Transfer]自体にtarget指定ができないのかもしれませんが、
解決策・助言等があればご教授願いします。

環境はVS.NET2003で使用言語はVB.NETです。
ロジックとしては、ボタンクリックでページ遷移です。

【a.aspx】
(HEAD部分に記述)
BASE target="XXXXXX"

【a.aspx.vb】
Sub button_click()
  Server.Transfer("XXXXXX")
End Sub

となります。

できる、できない含め、ご教授お願いします。
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2005-07-11 17:31
一つの手段

仮ページへ遷移して、そこのJavaScriptで
top.location.href
を書き換える。

_________________
たつごろー
codeseek
こみゅぷらす
武稜
会議室デビュー日: 2004/07/07
投稿数: 10
投稿日時: 2005-07-11 17:43
To:たつごろーさん
返信ありがとうございます。

>一つの手段
>
>仮ページへ遷移して、そこのJavaScriptで
>top.location.href
>を書き換える。

上記の方法(VBコードにJavaScriptを埋め込みました)で一度試したのですが、
顧客から一言...
「見栄えが悪い」
でした。
新規ウィンドウと同じ情報が、フレームページ(所謂メイン画面)に表示されているので
確かに見栄えは悪いと自分でも感じました。

けど、変な話ですが少しヒントを得たような気がします。(力技ですが。)

ありがとうございます。
また他の助言等がありましたら宜しくお願いします。


NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2005-07-11 17:59
NAL-6295です。

Server.Transferで遷移する時と、Response.Redirectで遷移する時のクライアントーサーバ間の挙動の違いに着目するとServer.Transferだと何故駄目なのかがわかると思います。

たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2005-07-11 18:14
引用:

新規ウィンドウと同じ情報が、フレームページ(所謂メイン画面)に表示されているので


何も出さないページでJavaScriptを動かせば、新規ウィンドウと同じ情報がでることはないですよ。
途中に1ページ挟むことになります。
確かにこれでも画面はちらつきます。
ですが、見栄えを優先するなら、もともとWebを選択するのが間違っているのです。

_________________
たつごろー
codeseek
こみゅぷらす
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-07-11 21:23
> もしかすると、[Server.Transfer]自体にtarget指定ができないのかもしれませんが、
そういうことです。

 Server.Transfer は、サーバで処理されます。Target の指定は、クライアントで実現され、実現されるかどうかをサーバが知ることはできません。できないから、noframe などという要素があるわけです。

 回避策は、過去にでてますよ。フレームで検索してください。
_________________
武稜
会議室デビュー日: 2004/07/07
投稿数: 10
投稿日時: 2005-07-11 23:35
皆さん、返信ならびに助言ありがとうございます。

To:たつごろーさん
呼び出し処理を行うページにではなく、遷移先のページに書いてそこから本来呼び出したい情報を呼ぶという方法ですね。
ありがとうございます。

To:NAL-6295さん
以下内容ですよね。読んだのですが、「何かありそうだよなぁ〜」と思い込んで投稿させていただきました。
申し訳ありません...
http://www.atmarkit.co.jp/fdotnet/aspnet/aspnet16/aspnet16_01.html

To:Jittaさん
解説並びに回避策、ありがとうございます。

皆さんの助言を基に、試してみます。
お手数おかけしました、ありがとうございます。

追記;結果を報告させていただきます。また、宜しくお願いします。

武稜
会議室デビュー日: 2004/07/07
投稿数: 10
投稿日時: 2005-07-12 10:18
お疲れさまです。

皆さんの助言をもとに、実装できました。
結局、Server.Transferを使用せずに(やはり無理ということが完全に解りましたので)JavaScriptを使用しました。

(参考にした過去ログです)
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=22191&forum=7

その他にも、Frameの土台部分をHTMLではなく、ASPXで作成しコードに書き込む方法などありましたので、現システムで最適な方法を模索したいと思います。

皆さん、ありがとうございました。
またよろしくお願いします。
1

スキルアップ/キャリアアップ(JOB@IT)