- PR -

子画面からJavaScriptで渡した値がVBで取得できない

1
投稿者投稿内容
MI
常連さん
会議室デビュー日: 2007/01/30
投稿数: 30
投稿日時: 2007-07-01 15:13
お世話になっております。
表題の件について質問させてください。
環境は ASP.net 2.0 + VB です。


親画面より検索画面を別窓で開き、
選択した値をJavaScriptで親画面のLabel または TextBoxへ反映させています。

ここまではうまくいくのですが、その値を 親の「更新」操作で Label.Text,TextBox.Text
で取得しようとすると、JavaScriptで書き込む以前の初期値が入っており
子画面で取得した値がどうやっても取れません。
ウォッチで見ても前の値が入ったままです。

同じような処理はいくつかこちらの掲示板で拝見したのですが
そのようにお困りの方は見つけることができませんでした。

何かお分かりの方、ヒントを頂けませんでしょうか。

親--------------------
Page_Load時
btnSearch.Attributes("onclick") = "window.open('Search.aspx?ID=lblBangou&Type=TextBox','', 'width=700px,height=600px');"

子--------------------
Protected Sub bntSelect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bntSelect.Click
Dim sb As StringBuilder = New StringBuilder

sb.Append("<script language=javascript>")
If Request.QueryString("Type") = "Label" Then
sb.Append("window.opener.")
sb.Append(Request.QueryString("ID"))
sb.Append(".innerText='")
Else
sb.Append("window.opener.document.form1.")
sb.Append(Request.QueryString("ID"))
sb.Append(".value='")
End If

sb.Append(lblSelectKekka.Text)
sb.Append("';")

sb.Append("window.close();")
sb.Append("</script>")
Page.ClientScript.RegisterStartupScript(Me.GetType, "sendKekka", sb.ToString())
End Sub


どうぞよろしくお願いいたします。

囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2007-07-01 15:23
まずは、ブラウザが POST する値が本当に更新後の値かを確認する事です。これが正しいならば、サーバー側で値を確認するタイミングが悪いという事になります。
引用:

Label.Text,TextBox.Text
で取得しようとすると、


の部分のソースコードがないので、これ以上はわかりません。
_________________
囚人のジレンマな日々
MI
常連さん
会議室デビュー日: 2007/01/30
投稿数: 30
投稿日時: 2007-07-01 15:45
囚人様

すばやいご回答ありがとうございます。
お陰で解決致しました。

>サーバー側で値を確認するタイミングが悪いという事になります。

すぐに、子画面を開く前、閉じた後のHTMLを確認してみまして、
その変化は発見できなかったのですが
TextBoxに
<input type="text" readonly="readonly" ・・・
という記述を発見しまして、readonlyを取り外したところ問題なく取得できました。


お答えを頂いてからいつも「もっと更に調べるべきであった!!!」と七転八倒しておりますが
なかなか身についてくれません。。。
今回また少し視野を広げれた事を大変感謝しております。
ありがとうございました。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2007-07-02 06:25
引用:

お答えを頂いてからいつも「もっと更に調べるべきであった!!!」と七転八倒しておりますがなかなか身についてくれません。。。


知恵は経験からしか身につきません。

知識を吸収するのは比較的簡単なのですが、この知恵はいかに多くの経験を積むかにかかっています。

がんばってください。

余談ですが、Office IME 2007の学習能力が悪くなかなか期待したように変換してくれません。「レバレッジ・シンキング」の著者、本田 直之さんが日本語変換は「ATOK 2007」に切り替えたとあったので早速体験版をインストールしました。ストレスがなく快適です。

IME 2007の学習能力が改善すると、ホワイトカラーの生産性も向上するのではないでしょうか。

_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集

[ メッセージ編集済み 編集者: Access 編集日時 2007-07-02 06:28 ]
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2007-07-02 09:24
思いっきりオフトピですが、
引用:

Accessさんの書き込み (2007-07-02 06:25) より:

余談ですが、Office IME 2007の学習能力が悪くなかなか期待したように変換してくれません。「レバレッジ・シンキング」の著者、本田 直之さんが日本語変換は「ATOK 2007」に切り替えたとあったので早速体験版をインストールしました。ストレスがなく快適です。


IME2007に関しては さるべーじさん のこのエントリがとても役に立ちます。
http://salv.miscnotes.com/2007/02/ime2007.php
学習機能をファイルに保存するように設定していますか?
_________________
かるあ のメモスニペット
1

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