- - PR -
ASP.NET 遷移元画面のURL取得方法
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-07-05 21:35
VB.NETでWEBフォーム間のデータ遷移をContext.Server.Transferを使用して行っています。
(例)formA.aspx → formB.aspx の呼び出し formA.aspx.vbに記述 Context.Server.Transfer(formB.aspx ) formBが表示された後に、選択されたデータを再び呼び出し元へ遷移させたいのです。 呼び出し元が複数ある場合に、呼び出し元のURLの取得方法はどうしたらよいのでしょうか? よろしくお願いします。 | ||||
|
投稿日時: 2004-07-06 09:04
こんにちは。
遷移元用Sessionを作りTransferの前で格納してやる方法ならよくやっていましたが、 それではダメでしょうか? 追記:こんな感じで Session("PrevPage") = "formA.aspx" Context.Server.Transfer(formB.aspx ) _________________ まゆりん@なんとなくDelphi [ メッセージ編集済み 編集者: まゆりん 編集日時 2004-07-06 09:12 ] | ||||
|
投稿日時: 2004-07-06 09:16
遷移先でContext.Handlerで判断してます。
↓参照 ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1041/cpguide/html/cpconPassingServerControlValuesBetweenPages.htm | ||||
|
投稿日時: 2004-07-06 09:22
あ、@ITさんの記事に載ってましたねhttp://www.atmarkit.co.jp/fdotnet/aspnet/aspnet16/aspnet16_02.html 今度やるときはこっち使おうっと。 _________________ まゆりん @ わんくま同盟 Blog る。 | ||||
|
投稿日時: 2004-07-06 11:32
まゆりんさん、fizzyさん、ありがとうございます。
formAからformBへの値渡し、受取側formBにてContext.Handlerを使用して呼び出し側formAの判断も出来ているのです。 しかし、呼び出し側のURLを取得する方法がわかりません。 下記のロジックでは、 「型 'System.Web.IHttpHandler' の値を 'String' に変換できません。」 の構文エラーとなります。 <formB> VB.NETです Dim strNo As String Dim strUrl As String Private Sub Page_Load(ByVal ・・) Handles MyBase.Load If IsPostBack Then Exit Sub If TypeOf Context.Handler Is SourcePage Then strNo = CType(Context.Items("no"), String) strUrl = CType(Context.Handler, String) ← ここで上記エラー End If End Sub formBは汎用的に複数のformから呼び出される為、 string型でURLを取得しておき、formBのボタンクリックイベントにて、 今度は呼び出し元formAをformBから呼び出したいのです。 Private Sub Button_Click(ByVal ・・・) Handles Button.Click Server.Transfer(strURL) とても初歩的な質問だと思いますが、よろしくお願いします。 | ||||
|
投稿日時: 2004-07-06 12:28
Context.Handlerは既に使われていたのですか・・・。 では、自分が調べて(試して)みたことは始めに書いて下さるようお願いします。 でないと今回のように二度手間になってしまい、お互い時間の無駄になっちゃいますよね? さて本題ですが、fizzyさんが提示されているページ(ローカルにmsdnがあれば見れるはずです)に記載されている方法で何とかなりませんかね? この辺り↓ Dim fp As FirstPageClass Sub Page_Load() If Not IsPostBack Then fp = CType(Context.Handler, FirstPageClass) End If End Sub で、Server.Transfer(fp.FirstName)になるのかな? #VB環境がないので間違ってたらごめんなさい。 ちなみにMSサイトではこちらに記載されています。 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconpassingservercontrolvaluesbetweenpages.asp _________________ まゆりん @ わんくま同盟 Blog る。 | ||||
|
投稿日時: 2004-07-06 14:51
まゆりんさん、ありがとうございます。
そうですね、説明不足だったようです。すみませんでした。 ご提示して頂いたページを参考にしましたが、 最後に呼び出し元formAをformBから呼び出す所が上手くいきません。 Server.Transfer(fp.FirstName)だと 「FirstNameはfpのメンバではありません」というエラーとなってしまいます。 VB.NETで書き方の問題だと思うのですが、、、 色々と調べてはいますが、わからないのです。 よろしくお願いします。 | ||||
|
投稿日時: 2004-07-06 15:49
すみません、先程挙げたFirstPageClassは呼び出し元ページのクラス名でした。
#思いきり斜め読みしてました・・・ これではどのクラスから呼び出されたか、いちいち見なければならなくなりそうです。 いい方法があればフォローして頂きたいところですが・・・。 C#では先程挙げた記事に記載されているとおり、 Context.Handler.ToString() であれば呼び出し元のファイル名(ASP.xxx.aspx)が取得できますが、 VBにはなかったような・・・。 うーん、お役に立てず申し訳ないです・・・。 _________________ まゆりん@なんでVB入れなかったんだろう・・・ [ メッセージ編集済み 編集者: まゆりん 編集日時 2004-07-06 15:54 ] | ||||
