- PR -

子画面でのpostbackで他の画面が開いてしまう

1
投稿者投稿内容
ゆうパパ
会議室デビュー日: 2005/04/21
投稿数: 11
投稿日時: 2005-04-21 12:00
始めまして。
VB6でプログラム開発してた者です。
現在、VB.NETが導入され、勉強中なのですが、その違いに戸惑ってます。
(特にASP.NET)
この会議室には参考になることが多く、お世話になっております。

ところで、現在開発中のプログラムで困っています。質問させてください。

子画面でTextBoxのコード入力時、データベースより名寄せしてLabelに表示したい
のですが、コードのTextBoxのAutoPostBackをTrueにして、TextChangedイベントで名称をLabelに表示させると、子画面ではなく他のウインドウが開いて、その結果が表示されてしまいます。子画面で処理をすることは可能でしょうか? 可能であれば、その方法を
教えてください。よろしくお願いいたします。

ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2005-04-21 12:24
子画面を、showModalDialogで開いてませんか?
だとすると、不可能です。showModalDialogで開いた画面はちょっと特殊なので。

子画面を、window.open()もしくはtarget="_blank"のリンクから開いているとすれば、可能です。この場合、別ウィンドウが開いてしまうとすれば、Formタグのtarget属性に変な値が入っちゃってるのかも。
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2005-04-21 12:50
おそらくshowModalDialogを使用してるのだと思いますが
その場合、フレームを使用することによって回避できます。
親画面からはフレームのダミーページをshowModalDialogで開きます。

コード:
<HTML>
	<HEAD>
		<TITLE></TITLE>
	</HEAD>
	<FRAMESET rows="*" frameborder="0" border="0" framespacing="0">
		<FRAME id="frameDialog" name="frameDialog" src="実際の子フォーム.aspx" noresize scrolling="no" frameborder=0>
	</FRAMESET>
</HTML>



ゆうパパ
会議室デビュー日: 2005/04/21
投稿数: 11
投稿日時: 2005-04-21 13:23
ぼのぼのさん、burton999さん、ありがとうございました。解決しました。

確かにshowModalDialogを使用していたのですが、burton999さんの
おっしゃるとおり、フレームを使用することによってうまくいきました。
2日も悩んでいたのに、ウソみたいです。

どうもありがとうごさいました。

ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2005-04-21 13:29
ほんとだ、できた!

私まで勉強になってしまいました。
気安く「不可能」なんて言うもんじゃないですね…

ありがとうございました。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2005-04-22 07:13
フレームの代わりに<head>...</head>セクションの間に

<base target="_self">を追加すると解決するようです。
_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
ゆうパパ
会議室デビュー日: 2005/04/21
投稿数: 11
投稿日時: 2005-04-22 09:42
Accessさん、ありがとうございます。

確かに<base target="_self">を追加しても解決しました。
いろいろと方法があるものですね。勉強になります。

ただ、この方法だと、子画面でのフォーカス移動が出来ません。

下記の方法でエラー時、フォーカス移動しているのですが・・・。
何故でしょう?

-------------------------------------------------------------------------------
Dim scrpt As String

scrpt = "<script language='JavaScript'>" + "document.getElementById('txtSyain_CD').focus(); <" + "/script>"
RegisterStartupScript("setfocus", scrpt)
-------------------------------------------------------------------------------


[ メッセージ編集済み 編集者: ゆうパパ 編集日時 2005-04-22 09:43 ]
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2005-04-22 18:32
引用:

フレームの代わりに<head>...</head>セクションの間に
<base target="_self">を追加すると解決するようです。



おぉ!!こんな方法があったとは。。。知らなかった。
今までフレームで実装したところを直そう_| ̄|○
1

スキルアップ/キャリアアップ(JOB@IT)