QA@IT
この質問・回答は、@ITの旧掲示板からインポートされたものです。

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

始めまして。
VB6でプログラム開発してた者です。
現在、VB.NETが導入され、勉強中なのですが、その違いに戸惑ってます。
(特にASP.NET)
この会議室には参考になることが多く、お世話になっております。

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

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

質問者:ゆうパパ

回答

子画面を、showModalDialogで開いてませんか?
だとすると、不可能です。showModalDialogで開いた画面はちょっと特殊なので。

子画面を、window.open()もしくはtarget="_blank"のリンクから開いているとすれば、可能です。この場合、別ウィンドウが開いてしまうとすれば、Formタグのtarget属性に変な値が入っちゃってるのかも。

投稿者:ぼのぼの

編集 履歴 (0)

おそらく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>

投稿者:burton999

編集 履歴 (0)

ぼのぼのさん、burton999さん、ありがとうございました。解決しました。

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

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

投稿者:ゆうパパ

編集 履歴 (0)

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

ありがとうございました。

投稿者:ぼのぼの

編集 履歴 (0)

フレームの代わりに...セクションの間に

を追加すると解決するようです。
_________________ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集

投稿者:Access

編集 履歴 (0)

Accessさん、ありがとうございます。

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

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

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

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

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

-------------------------------------------------------------------------------

[ メッセージ編集済み 編集者: ゆうパパ 編集日時 2005-04-22 09:43 ]

投稿者:ゆうパパ

編集 履歴 (0)

フレームの代わりに...セクションの間に

を追加すると解決するようです。

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

投稿者:burton999

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。