- - PR -
【ASP.NET】別Windowの開き方
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-12-10 11:48
遥@初心者といいます。 お世話になります。
ASP.NET(VB.NET)でWebアプリの開発をしております。 非常に初歩的ですが、質問をさせて下さい。 ASP.NETで、新規に別Windowを開きたいのですが、 方法がみつかりません。 クライアントスクリプト(JavaScript)でwindow.open するしか方法がないのでしょうか? ※別windowは更新ボタンのツールバーのないWindow。 現在は、JavaScriptにより記述しているのですが、以下の 問題にぶちあたっています。 あるWindowから画面展開するボタンをクリックすることにより、 別Windowを開き、同時にセッション情報もわたしているのですが、 セッション情報を渡すより前に、新規Widnowが開いてしまい、 (つまりPage_Loadが走ってしまい)新規Windowでセッション情報 が取得できません。 ご教授願いませんでしょうか? −環境− ServerOS:Win2000、IIS5.0 Client:IE6.0 開発環境:VS.NET(VB.NET) | ||||
|
投稿日時: 2003-12-10 12:07
どのようにしてセッション情報を渡そうとしていますか?新規に開いた画面のaspx.vbにて、Page.Sessionプロパティからアクセスできていますが。。。? | ||||
|
投稿日時: 2003-12-10 12:17
こんにちは。
サーバとクライアントの区別はついていますか? ここを読んで頂ければ分かると思いますが、 セッションはサーバ側で保持しますので、クライアント側で別ウィンドウを開こうが影響は無いはずです。 Page_Loadでセッションを呼び出してあげれば取得できると思いますが・・・? | ||||
|
投稿日時: 2003-12-10 12:22
[/quote]
どのようにしてセッション情報を渡そうとしていますか?新規に開いた画面のaspx.vbにて、Page.Sessionプロパティからアクセスできていますが。。。? [/quote] 呼び元WindowのForm_Load時に新規Windowを開くJavaScriptをAttributeし、 検索ボタン_クリック時に、そのJavaScriptが実行される仕組みにしています。 と同時に、検索ボタン_クリック時にSession("key1")=セッション情報 という形でデータを渡しています。 呼ばれたWindowは、Page_Load時にセッション情報=Session("key1")という形で 受け取ろうとしています。 宜しくお願いします。 | ||||
|
投稿日時: 2003-12-10 12:32
たぶん「Session("key1")=セッション情報」という処理の前に 新規ウィンドウが開いていると仰りたいんですよね? 渡すデータ量が少なければ、セッションで渡すのではなくて window.openで指定したURLにパラメータを付けて送信してはどうでしょうか? | ||||
|
投稿日時: 2003-12-10 12:53
まゆりんさん、おっしゃる通りなんです。
セッション情報を渡す前に、新規Windowが開いてしまうので、 Page_Load時ではセッション情報を受け取れないんです。 ですので、セッション情報でデータを渡す方法をあきらめて、 @クエリー文字列で渡すか、 A呼び元から、新規Windowの隠しフィールドに値をセットする しかないのかな、と。 でも、すっきりしないです。 ところで、ASP.NETで新規Windowを開く方法はないものでしょうか? もしわかりましたらご教授ください。お願いします。 | ||||
|
投稿日時: 2003-12-10 13:17
なるほどねぇ。そういう方法も、使っているけど、あるか。
Attribute.Addでしなければならないですか?サーバまで戻ってきて、セッション情報を入れるなら、そのボタンのサーバサイドコードのクリックイベントで、 Page.Session(KEY) = INFORMATION Page.RegisterStartupScript("OpenNewWindow", "<script language=""javascript"">window.open('URL', 'TARGET');</script>") Attribute.Addは外してください。 | ||||
|
投稿日時: 2003-12-10 13:33
あ・・・できるんですね・・・。 私もサーバサイドで出来ないものかと調べたんですが、 結局クライアント側に任せてしまっていました。 #ちゃんと調べておけば苦労しなかったのに・・・(後悔)。 またまた勉強させて頂きました。 |