- PR -

親画面にデータを反映させる方法

投稿者投稿内容
ひろきち
会議室デビュー日: 2002/09/13
投稿数: 18
投稿日時: 2002-09-20 21:56
ASP.NETで親画面から呼び出した子画面で、データを入力し
親画面のあるテキストボックスに値を入れるというような事を
やったことのある方いらっしゃいますでしょうか?

入力画面(親画面)でテキストボックスとボタンを1セットで用意し、
ボタンを押すことで、HELP画面(子画面)を表示させ
HELP画面で選択された情報を入力画面のテキストボックスに
反映させたいと考えています。

子画面から、親画面の指定したコントロールにデータをセットすることは
難しいのでしょうか?

子画面で選択された情報をPublic変数に保存しておき、
親画面に持たせたメソッドを子画面から実行しようと試みたのですが、
どうもうまくできません。

ご存知の方がいらっしゃいましたら、アドバイスよろしくお願いいたします。

また、上記の方法より、もっといい方法をご存知の方、
教えていただけませんでしょうか?
DaikiRyuto
大ベテラン
会議室デビュー日: 2002/07/23
投稿数: 200
投稿日時: 2002-09-20 23:12
JavaScriptを好きに使って良いのなら
http://www.daikiryuto.com/program/javascript/js01.htm
に載ってるような方法でいつもやってます。
ご参考になれば幸いです。
うりゅう
大ベテラン
会議室デビュー日: 2002/06/15
投稿数: 202
お住まい・勤務地: Hiroshima
投稿日時: 2002-09-20 23:38
こんにちわ。うりゅうです。

>子画面で選択された情報をPublic変数に保存しておき、
>親画面に持たせたメソッドを子画面から実行しようと試みたのですが、
>どうもうまくできません。

同じASPX内に存在するならば、可能なはずです。Public変数に共有を表す、Sharedを追加してください。
_________________
--------------------------------------
ネットビルド 小田原貴樹
odahara@netbuiuld.jp
--------------------------------------
ひろきち
会議室デビュー日: 2002/09/13
投稿数: 18
投稿日時: 2002-09-21 13:07
DaikiRyutoさん、うりゅうさん、ご返答ありがとうございます。

先ほど試したところ、DaikiRyutoのJavaScriptの方法が
今の私には理解しやすかったので、今回はこの方法を使わせてもらおうと思います。

うりゅうさんの方法は、まだまだ.NETの知識が少ないため、
調べながら実現しようとしているところです。
WEB系のプログラミングを本格的に開始したところで、
わからないところが山積みな現状です・・・。

DaikiRyutoさん、うりゅうさん、
まだまだ勉強不足な私にご教授ありがとうございます。
これからも何かありましたらよろしくお願いいたします。
うりゅう
大ベテラン
会議室デビュー日: 2002/06/15
投稿数: 202
お住まい・勤務地: Hiroshima
投稿日時: 2002-09-21 15:46
>先ほど試したところ、DaikiRyutoのJavaScriptの方法が
>今の私には理解しやすかったので、今回はこの方法を使わせてもらおうと思います。
>うりゅうさんの方法は、まだまだ.NETの知識が少ないため、
>調べながら実現しようとしているところです。
>WEB系のプログラミングを本格的に開始したところで、
>わからないところが山積みな現状です・・・。

いえいえ。特にWEB系システムの場合、ひとつの結果を導き出すのに、様々な方法があると思います。僕的には「どれが正しい」ということはなく「どれが自分にとって楽か(効率的か)」の方が重要だと思っていますので、何の問題もないかと。

すっごく荒い言い方をすれば「とにかく動けばいい」のであって「正当性」なぞはその後問題だろうと(笑)。という一つの見解でした。
_________________
--------------------------------------
ネットビルド 小田原貴樹
odahara@netbuiuld.jp
--------------------------------------
ひろきち
会議室デビュー日: 2002/09/13
投稿数: 18
投稿日時: 2002-09-22 15:06
うりゅうさんご返答ありがとうございます。

Sharedを使用してのプログラムも、試させていただきました。
うまくいきました。ありがとうございます。

ずっとVBでの開発が多かったため、
ローカルの画面内のメソッドもPublicで指定しておけば、同じプロジェクト内であれば
呼び出し方(オブジェクト渡しをして実行とか、オブジェクト直指定で実行)は
異なるにしても、実行可能という先入観で調べていました。

.NETの考えでいけば、同じプロジェクト内で共用しようとする時には、
共用したいメソッド等には、Public、Privateのレベルより、
更に別にSharedを指定して共有化する必要があったんですね?
とりあえず、現状うまく動いています。

Sharedの事を調べてて、もうひとつあまりうまくない作り方をしている
プログラムがある事もわかりましたし・・・。(汗)

大変参考になりました、本当にありがとうございます。

ジャム
会議室デビュー日: 2002/09/19
投稿数: 7
お住まい・勤務地: 大阪府
投稿日時: 2002-09-23 20:44
Sharedを使用する際には、【共有オブジェクト】であるという事を認識して
使用される事をおすすめします。
クラスが実体化されてもSharedオブジェクトはクラス内でユニークなので
参照先は1つだけ=同じ値と言うことになります。
ASP.NETでもその辺を考えて設計しないと、あとで困ったことになります。

>.NETの考えでいけば、同じプロジェクト内で共用しようとする時には、
>共用したいメソッド等には、Public、Privateのレベルより、
>更に別にSharedを指定して共有化する必要があったんですね?

いえ、Publicで構わないと思います。
Sharedを指定する意味をもう少し勉強してみて下さい。
当スレッドの問題を解決するには、JavaScriptを使用するのが今回は
最適解だと私は思います。
うりゅう
大ベテラン
会議室デビュー日: 2002/06/15
投稿数: 202
お住まい・勤務地: Hiroshima
投稿日時: 2002-09-23 22:49
ジャムさんのおっしゃるとおり、確かにSharedは思わぬバグを生む事があります。
 しかし、今回の件のように値渡し用に使う上ではASP.NETを使う以上、一つの選択肢になりうるだろうと思います。

 もちろん開発者ごとの好みですので一概には言えないのですが、僕自身の意見としてはデバックなどの事を考えると、とにかくなるべくJavaScriptを使いたくないというのがありまして、それはひっくり返せば、なるべくコードビハインド上で実装してしまいたいというのがあります。自分の最適解を言えば、「Sharedを使ってでもコードビハインドオンリー」という感じでしょうか。使わなくてもすむような運用設計・遷移設計を目指すとは思うのですが。
_________________
--------------------------------------
ネットビルド 小田原貴樹
odahara@netbuiuld.jp
--------------------------------------

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