ASP.NETにおいて、任意のクラスのコントロールにアクセスするには?

解決


ZUKI-MU  2005-09-15 01:03:47  No: 92238

開発環境はASP.NETです。

現在作成しているアプリはフレームセットを使用し、
htmファイル1ページに4つのWebFromを実装しています。

WebForm1(Cls_Footer)のボタンを押下した時に、
WebForm2(Cls_Header)のラベルに文字を出力したいのですが・・・

何かいい方法がありましたら、御教授お願いいたします。


なおこ(・∀・)  2005-09-15 01:15:19  No: 92239

お世話になります。
Sessionで文字情報の受け渡し、はどうでしょうか。


なおこ(・∀・)  2005-09-15 01:39:28  No: 92240

以下、実験結果

フレームセットをプロジェクトへ追加。
種類は「ヘッダー、フッターおよびコンテンツ」。
Header.aspxとFooter.aspxをプロジェクトへ追加。
Header.aspxにボタンを配置。Footer.aspxにLabelを配置。
フレームセットのheaderにHeader.aspx、
footerにFooter.aspxを割り当てる。

■Header.aspxのコード
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    Session("test") = "test_string"
    Response.Write("<script language='javascript'>window.parent.frames[3].document.forms[0].submit();</script>")
End Sub

■Footer.aspxのコード
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    If Me.IsPostBack Then
        Me.Label1.Text = CType(Session("test"), String)
        Session("test") = Nothing
    End If
End Sub


我龍院忠太  2005-09-15 02:54:38  No: 92241

ASPは詳しくないのですが。。
Query Stringを使って

■WebForm1側のコード
Private Sub Button1_Click(ByVal sender As System.Object, _
     ByVal e As System.EventArgs) Handles Button1.Click
     Response.Redirect("WebForm2.aspx?p1=テスト送信")
End Sub

■WebForm2側のコード
Private Sub Page_Load(ByVal sender As System.Object, _
     ByVal e As System.EventArgs) Handles MyBase.Load
     Label1.Text = Request.QueryString("p1")
End Sub
こんな方法も有るような気がするが。


我龍院忠太  2005-09-15 03:22:30  No: 92242

連続で失礼。
Sessionを使う方法だと、
■WebForm1側のコード
Private Sub Button1_Click(ByVal sender As System.Object, _
   ByVal e As System.EventArgs) Handles Button2.Click
   Session("SendString") = "テスト送信"
   Response.Redirect("WebForm2.aspx")
End Sub
■WebForm2側のコード
Private Sub Page_Load(ByVal sender As System.Object, _
   ByVal e As System.EventArgs) Handles MyBase.Load
   Label1.Text = Session("SendString")
End Sub
こんな方法も有るし、
Cookieを使う、
■WebForm1側のコード
Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button3.Click
    Response.Cookies("SendString").Value = "テスト送信"
    Response.Redirect("WebForm2.aspx")
End Sub
■WebForm2側のコード
Private Sub Page_Load(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load
    Label1.Text = Request.Cookies("SendString").Value
End Sub  
こんな方法も有るかも、いずれも一長一短。


ZUKI-MU  2005-09-17 03:34:49  No: 92243

なおこ(・∀・)さん、我龍院忠太さんありがとうございます。

我龍院忠太さんの方法はFooterFrameにHeader.aspxがアップされ、
うまくいきませんでした。

なおこ(・∀・)さんの
>Response.Write("<script language='javascript'>window.parent.frames[3].document.forms[0].submit();</script>")

の frames[]とforms[]の引数は何を表しているのでしょうか?
これも、うまくいきませんでした。
自分のやり方が悪いのだとは思いますがよろしければ御教授願えませんでしょうか。


なおこ(・∀・)  2005-09-17 04:08:17  No: 92244

お世話になります。

frames[]についてはこちら
http://www.artemis.ac/mozilla3/javascript/window/wwindow.htm
forms[]についてはこちら
http://www.axis.t.u-tokyo.ac.jp/~shunak/ecmascript/forms.html
を参考にしてみてください。

formsは、ひとつのHTMLのなかに
<FORM>タグが複数ない限り、0でよいはず。


ZUKI-MU  2005-09-20 20:26:52  No: 92245

解決致しました。
なおこ(・∀・)さん、我龍院忠太さんありがとうございました♪


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加