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

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

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

Re[5]: 別ウィンドウの表示方法


(過去ログ 38 を表示中)

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

■19711 / inTopicNo.1)  別ウィンドウの表示方法
  
□投稿者/ hana (15回)-(2008/05/28(Wed) 10:45:59)

分類:[.NET 全般] 

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

【開発環境】
Visual Basic .NET 2003
Webフォーム
言語:VB

【現時点での実現内容】
親画面(windowA)のボタン1(Button1)押下で、子画面(windowB)を表示…@したいと思い、
以下のコードで実現させることができました。
-----------------------------------------------------------------------------------------------------------------
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     Button1.Attributes["onclick"] = "form.target='_blank';"
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     Response.Redirect("子画面B.aspx")
End Sub
-----------------------------------------------------------------------------------------------------------------

【現時点での問題点】
現在問題となっているのは、@を実行後に親画面(windowA)のボタン2(Button2)を押下した場合も
別ウィンドウを開いて画面遷移してしまうということです。

【わからないこと】
Button1.Attributes["onclick"] としているので
Button1押下時のみ別ウィンドウが開くと思っていたのですが、
なぜ、Button2押下の場合も別ウィンドウが開いてしまうのだろうか。
※Button1を押下していない状態でButton2を押下しても別ウィンドウは開きません

【やりたいこと】
ボタン1押下の場合は別ウィンドウを開いて表示したいのですが、
ボタン2押下の場合は親画面が切り替わるという風にしたいのです。

実現方法をご存知の方、ご教授をよろしくお願い致します。

引用返信 編集キー/
■19715 / inTopicNo.2)  Re[1]: 別ウィンドウの表示方法
□投稿者/ Jitta on the way (98回)-(2008/05/28(Wed) 11:51:25)
No19711 (hana さん) に返信
> いつもお世話になっております。
>
> 【開発環境】
> Visual Basic .NET 2003
> Webフォーム
> 言語:VB
>
> 【現時点での実現内容】
> 親画面(windowA)のボタン1(Button1)押下で、子画面(windowB)を表示…@したいと思い、
> 以下のコードで実現させることができました。
> -----------------------------------------------------------------------------------------------------------------
> Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
> Button1.Attributes["onclick"] = "form.target='_blank';"
> End Sub
>
> Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
> Response.Redirect("子画面B.aspx")
> End Sub
> -----------------------------------------------------------------------------------------------------------------
>
> 【現時点での問題点】
> 現在問題となっているのは、@を実行後に親画面(windowA)のボタン2(Button2)を押下した場合も
> 別ウィンドウを開いて画面遷移してしまうということです。
>
> 【わからないこと】
> Button1.Attributes["onclick"] としているので
> Button1押下時のみ別ウィンドウが開くと思っていたのですが、
> なぜ、Button2押下の場合も別ウィンドウが開いてしまうのだろうか。
> ※Button1を押下していない状態でButton2を押下しても別ウィンドウは開きません
>
> 【やりたいこと】
> ボタン1押下の場合は別ウィンドウを開いて表示したいのですが、
> ボタン2押下の場合は親画面が切り替わるという風にしたいのです。
>
> 実現方法をご存知の方、ご教授をよろしくお願い致します。


form.target に設定しているからです。ボタン1をクリックすると、form の内容が変わってしまいます。そして、ポストバックした結果を受けとる、form.target の設定がされていないものを受けとるのは、新しいウィンドウです。
引用返信 編集キー/
■19716 / inTopicNo.3)  Re[2]: 別ウィンドウの表示方法
□投稿者/ y4yama (69回)-(2008/05/28(Wed) 12:00:01)
>>【やりたいこと】
>>ボタン1押下の場合は別ウィンドウを開いて表示したいのですが、

こんちは。先日、同じように悩みました。

Me.Button1.Attributes("onclick") = "window.open('http://xxxxx/test_xxxx/WebForm2.aspx','', 'width=860,height=480,scrollbars=1,resizable=1');"
どこかから拾ってきたようなコードですが・・・1つの解法かと

引用返信 編集キー/
■19720 / inTopicNo.4)  Re[3]: 別ウィンドウの表示方法
□投稿者/ hana (16回)-(2008/05/28(Wed) 13:18:13)
No19716 (y4yama さん) に返信 
> こんちは。先日、同じように悩みました。
> 
>  Me.Button1.Attributes("onclick") = "window.open('http://xxxxx/test_xxxx/WebForm2.aspx','', 'width=860,height=480,scrollbars=1,resizable=1');"
> どこかから拾ってきたようなコードですが・・・1つの解法かと
> 

以下のようにコードを変更することで解決致しました。
ありがとうございました。
-----------------------------------------------------------------------------------------------------------------
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     Me.Button1.Attributes["onclick"] = "window.open('http://xxxxx/test_xxxx/WebForm2.aspx')"
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     ' 以下をコメントアウト
     ' Response.Redirect("子画面B.aspx")
End Sub
-----------------------------------------------------------------------------------------------------------------

解決済み
引用返信 編集キー/
■19731 / inTopicNo.5)  Re[4]: 別ウィンドウの表示方法
□投稿者/ Jitta on the way (100回)-(2008/05/28(Wed) 19:33:58)
No19720 (hana さん) に返信
Button2.Attributes
["onclick"] =
"form.target='_top';"

という手もある。
_top だっけ? self だっけ?
解決済み
引用返信 編集キー/
■19745 / inTopicNo.6)  Re[5]: 別ウィンドウの表示方法
□投稿者/ hana (17回)-(2008/05/29(Thu) 10:03:20)
No19731 (Jitta on the way さん) に返信
> ■No19720 (hana さん) に返信
> Button2.Attributes
> ["onclick"] = 
> "form.target='_top';"
> 
> という手もある。
> _top だっけ? self だっけ?

Jitta on the way さん、返信ありがとうございます。

_top(フレームを解除)でした。

以下のようにコードを変更したら上手くいきました。
-----------------------------------------------------------------------------------------------------------------
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     Me.Button1.Attributes["onclick"] = "form.target='_blank';"
     Me.Button2.Attributes["onclick"] = "form.target='_top';"
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     Response.Redirect("子画面B.aspx")
End Sub
-----------------------------------------------------------------------------------------------------------------

ただ、
1)ボタンの数分だけ"form.target='_top';"と書かなければならない、
2)新規にボタンを追加した時のコーディング漏れ
等の問題があるので、ちょっと効率が悪いかなと…。

でも、formの勉強にはなりました。
ありがとうございました。

解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -