- PR -

framesetした画面のデータ受渡しについて

投稿者投稿内容
ken
ベテラン
会議室デビュー日: 2005/11/03
投稿数: 64
投稿日時: 2006-04-13 19:27
いつもお世話になっております。

VB.NETでWEBアプリケーションを作成しています。

A.aspxとB.aspxをframesetを使用して一つの画面に表示しています。

A.aspxとB.aspxにはそれぞれTextBoxが配置してあります。
A.aspxにはコマンドボタンがあり、このボタンを押すと
A.aspxのTextBoxの値をB.aspxのTextBoxにセットしたいのですが
やり方が分かりません。

教えて下さい。宜しくお願いします。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-04-14 09:08
いくつかやり方があると思います。

1.B.aspx から A.aspx をリロードさせてサーバで A.aspx の値を書き換える
2.B.aspx の ボタンクリック時に A.aspx のテキストボックスの値を書き換える

どちらにせよ JavaScript での制御になると思うので
まず静的な HTML で考えてみると良いと思います。
Katze
ベテラン
会議室デビュー日: 2005/11/01
投稿数: 74
お住まい・勤務地: 1台でも せんだい
投稿日時: 2006-04-14 10:03
JavaScriptで

window.parent.B.aspxを表示しているフレームのID.B.aspxのフォームID.B.aspxのTextBoxのID.value = A.aspxのフォームID.A.aspxのTextBoxのID.value;

をA.aspxのボタンクリックイベントに設定

# IE限定?(IE7は未検証)
ken
ベテラン
会議室デビュー日: 2005/11/03
投稿数: 64
投稿日時: 2006-04-14 18:13
Katzeさん、かるあさん、ありがとうございます。

JavaScriptで対応できました。

違う質問なんですが

B.aspxにはSUBプロシージャやFunctionプロシージャがあります。(VB.NET)
B.aspxのTextBoxに値がセットされたら
B.aspxのVB.NETのプロシージャを実行させたいのですが分かりません。

教えて下さい。宜しくお願いします。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-04-15 00:26
引用:

kenさんの書き込み (2006-04-14 18:13) より:

B.aspxのTextBoxに値がセットされたら
B.aspxのVB.NETのプロシージャを実行させたいのですが分かりません。



この場合セットとは何ですか?
ユーザが何かキーを入力したとき?
それともJavaScriptで値を設定したとき?

JavaScriptで値を設定したときならばそのタイミングでリロードすればいいのかな
ken
ベテラン
会議室デビュー日: 2005/11/03
投稿数: 64
投稿日時: 2006-04-17 10:35
JavaScriptで値を設定したときです。

下記のようなかんじでA.aspxのテキストボックスから
B.aspxのテキストボックスに値をセットしました。
これはB.aspxのButton_Clickに記述しました。

Dim startupScript As String
Dim strScript As String

strScript = " parent.BFrame.document.BForm.Text1.value = parent.AFrame.document.AForm.Text1.value;"

startupScript = "<script language='JavaScript'> " + strScript + "</script>"
RegisterStartupScript("set", startupScript)

この後に続けて

Call RUN(Me.Text1.value)

としてRUNプロシージャを実行したいのですが
Text1.valueを取得できません。

何かいい方法はないでしょうか?
教えて下さい。宜しくお願いします。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-04-17 13:56
引用:

kenさんの書き込み (2006-04-17 10:35) より:

コード:
Dim startupScript As String
Dim strScript As String

strScript = " parent.BFrame.document.BForm.Text1.value = parent.AFrame.document.AForm.Text1.value;"

startupScript = "<script language='JavaScript'> " + strScript + "</script>"
RegisterStartupScript("set", startupScript)





strScript の記述の後にフォームをリロードしたり、サブミットしたり、
もしボタンが配置されているのであれば、クリックしたりする処理を記述すれば
どうにかなりませんか?
ken
ベテラン
会議室デビュー日: 2005/11/03
投稿数: 64
投稿日時: 2006-04-17 14:10
かるあさん、ありがとうございます。

他のサイトやら参考書やらで、いろいろ検討してみました。
<Form></Form>のonsubmitイベントでテキストボックスに値をセット
したところ、とりあえずうまくいきました。

こんな方法で良かったのか疑問が残るのですが
とりあえず、これで対応したいと思います。

他にいい方法が見つかれば修正したいと思います。

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