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

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

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

Re[2]: 呼び出し元のページによってリンク先を切り替える


(過去ログ 44 を表示中)

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

■23690 / inTopicNo.1)  呼び出し元のページによってリンク先を切り替える
  
□投稿者/ ぽっち (27回)-(2008/08/20(Wed) 13:13:17)

分類:[ASP.NET (C#)] 

2008/08/20(Wed) 13:38:42 編集(投稿者)

いつもお世話になっております。

環境はXP。
使用言語、ASP.NETとC#で開発を行っております。


実は、とあるページから詳細ページに遷移する際に、詳細ページには「戻る」ボタンというのがあるのですが、
複数のページからその詳細ページには遷移出来るようになっています。


例えば、「A.aspx」というページから「詳細ページ」に遷移した時は、「戻る」ボタンのリンクは、「A.aspx」に戻るという風に
指定できるのかという事です。もっと説明しますと、「B.aspx」の時の「戻る」ボタンは、「B.aspx」にリンクするようになるという事がしたいのです。


まず、「詳細ページ」にて、前ページの情報を取得するのが分からないのと、その後の「戻る」ボタンへの
リンク切り分け制御の仕方が分からないのです。
お手数ではございますが、ご教授お願いします。
引用返信 編集キー/
■23696 / inTopicNo.2)  Re[1]: 呼び出し元のページによってリンク先を切り替える
□投稿者/ ま (106回)-(2008/08/20(Wed) 14:20:04)
public Enum PageID
{
   A,
   B,
   C,
   D,
   M
}

A.aspx(B.aspx, C.aspx, D.aspx, M.aspx も同じ) のサーバーコード:
protected void Page_Load(..)
{
    session.attribute["From"] = PageID.A;

}

M.aspx のサーバーコード:
protected void Modoru_Click(object o, EventArgs e)
{
   switch ( session.attribute["From"] ) {
     case PageID.A:
       server.transfer("A.aspx");
       break;
     case PageID.B:
       server.transfer("B.aspx");
       break;
     case PageID.C:
       server.transfer("C.aspx");
       break;
     case PageID.D:
       server.transfer("D.aspx");
       break;
     default:
       break;
  }
}

とか。出来るかどうかはわからんので検証してみてください。

Page クラスに直前がどのページだったのかを示すプロパティかなんかあったような気がします。
無いかもしれないけど、Page クラスの詳細を見てみるとよいでしょうね。

引用返信 編集キー/
■23699 / inTopicNo.3)  Re[2]: 呼び出し元のページによってリンク先を切り替える
□投稿者/ もょもと (32回)-(2008/08/20(Wed) 14:46:10)
2008/08/20(Wed) 14:57:05 編集(投稿者)

> 例えば、「A.aspx」というページから「詳細ページ」に遷移した時は、「戻る」ボタンのリンクは、「A.aspx」に戻るという風に
> 指定できるのかという事です。もっと説明しますと、「B.aspx」の時の「戻る」ボタンは、「B.aspx」にリンクするようになるという事がしたいのです。

ブラウザの戻るボタンと同じような動きをさせたいということですよね?
でしたら、JavaScriptを使って、

<SCRIPT language="JavaScript">
<!--
function return(){
history.back();
}
// -->
</SCRIPT>

詳細ページの戻るボタンonClick="return()"ではいかがですか?
もしくはRequest.Headers["Referer"]を使うとか。
引用返信 編集キー/
■23707 / inTopicNo.4)  Re[2]: 呼び出し元のページによってリンク先を切り替える
□投稿者/ ぽっち (28回)-(2008/08/20(Wed) 15:34:10)
No23696 (ま さん) に返信
返信有難うございます!

他の遷移にも流用しているページに関する記述を集めたファイルがあるので、そこからページデータを引っ張ってきて
まさんの参考にさせて頂きました。

遷移先のPage_Loadに
Session["file"] = PageName.ed;

戻るボタンイベントには、

if (Session["file"] != null)
{
 this.Response.Redirect(PagePath.ed, false);
}
else
{
 this.Response.Redirect(PagePath.li, false);
}

で上手く行きました!
本当に助かりました!ありがとうございます〜!!

ところで、まさんが書かれてたsession.attributeの「attribute」自体無かったので・・・
どういうのかまた調べてみようと思います。
解決済み
引用返信 編集キー/
■23709 / inTopicNo.5)  Re[3]: 呼び出し元のページによってリンク先を切り替える
□投稿者/ ぽっち (29回)-(2008/08/20(Wed) 15:36:07)
No23699 (もょもと さん) に返信
> 2008/08/20(Wed) 14:57:05 編集(投稿者)
>
>>例えば、「A.aspx」というページから「詳細ページ」に遷移した時は、「戻る」ボタンのリンクは、「A.aspx」に戻るという風に
>>指定できるのかという事です。もっと説明しますと、「B.aspx」の時の「戻る」ボタンは、「B.aspx」にリンクするようになるという事がしたいのです。
>
> ブラウザの戻るボタンと同じような動きをさせたいということですよね?
> でしたら、JavaScriptを使って、
>
> <SCRIPT language="JavaScript">
> <!--
> function return(){
> history.back();
> }
> // -->
> </SCRIPT>
>
> 詳細ページの戻るボタンonClick="return()"ではいかがですか?
> もしくはRequest.Headers["Referer"]を使うとか。

もょもとさん、助言助かります!ありがとうございます。
Javascript制御は、一応仕様に反するので出来るだけ使いたくなかったので・・・
いろんな視野が広がるという事で、今回のはメモっておきます。ありがとうございます。

一応、まさんの所にも書きました通り、上記ソースで解決致しました。
本当にありがとうございました。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -