- PR -

WebForm[A]から WebForm[B]の複数のコントロールへ値をセットする

投稿者投稿内容
kshr
常連さん
会議室デビュー日: 2004/04/20
投稿数: 28
お住まい・勤務地: 滋賀
投稿日時: 2004-04-20 17:58
初めて書き込みさせていただきます。
ASP.NET(VB)でWebAppの開発を行っており
普段はWindowsAppが主な案件でWebに関して知らない事ばかりの
素人です・・・が、どうかご教授お願いいたします。

ある案件に関する仕様を満たす事ができるかどうかを検証している
段階で行き詰まってしまい色々と調べた(つもり)なのですが
一向に光が見えない為、ここへ書き込みさせていただきます。

エントリー画面のコントロール(ボタンなど)クリックイベントから
検索画面を開き、検索された結果(1件)の値をエントリー画面のTextBox
へ値を返し、その値を使用しDBへアクセスし関連する項目(ラベルなど)
へ検索値をセットしたいのです。

WindowsAppなら
対象フォーム名.コントロール名.Text = 値
など結果をセットしたり
複数のコントロールへ値をセットする事が可能ですが
WebAppでは可能なのかどうか…(多分無理?)

現在の進捗としては
エントリー画面のLinkButtonのプロパティー:CommandArgument(コマンド引数)
へ戻り値をセットしたいコントロール名をセットする
LinkButtonのClickイベントを使用しJavaScriptを生成し検索画面を新規表示する
検索画面で選択された一意のキーをJavaScriptを生成しエントリー画面へ返す

しかしこれだと思い通りの動作とは言えないのです。

エントリー画面のTextBoxへ値が入ってもTextChangedイベントは発生しないため
入力しただけの状態になるだけで、ロジックを動作(関連データを検索して
関連コントロールへ値をセット)する事ができないのです。


実際に作成するのはGridのあるColumnsのボタンから検索画面を開き
検索結果をGridのあるColumnsへ返す…事なのですけどね。。。


文才はありません。。。解りづらい表現などあるとは思いますが、
よろしくお願いしますm(> <)m
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-04-20 18:39
検索画面から、エントリー画面のsubmit()は呼べないんですね。
ボタンのclick()もだめですか?

Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-04-20 18:48
引用:

kshrさんの書き込み (2004-04-20 17:58) より:

エントリー画面のTextBoxへ値が入ってもTextChangedイベントは発生しないため
入力しただけの状態になるだけで、ロジックを動作(関連データを検索して
関連コントロールへ値をセット)する事ができないのです。


 発生させる為にはプロパティを変更すればいいのですが、どのような場所で使うものなのでしょう?回線が早く、同時に多人数がアクセスしない(つまり、サーバの負荷がかからない)なら、AutoPostBackをtrueです。


 が、これをすると一文字入力するごとにサーバとやりとりをします。回線が遅かったり、サーバの負荷が高いと使い物になりません。ボタンクリックなどのクッションをおくことをお勧めします。
kshr
常連さん
会議室デビュー日: 2004/04/20
投稿数: 28
お住まい・勤務地: 滋賀
投稿日時: 2004-04-20 18:58
引用:

一郎さんの書き込み (2004-04-20 18:39) より:
検索画面から、エントリー画面のsubmit()は呼べないんですね。
ボタンのclick()もだめですか?




一郎さんお返事ありがとうございます。

お恥ずかしながら、Webに関して素人同然でして
submit()を呼ぶ
click()の方法自体がわかっていないので
調べてみます。

とりあえず、検索フォームからエントリーフォームのコントロールを
制御(Click)できると理解すればいいでしょうか?
kshr
常連さん
会議室デビュー日: 2004/04/20
投稿数: 28
お住まい・勤務地: 滋賀
投稿日時: 2004-04-20 19:10
引用:

Jittaさんの書き込み (2004-04-20 18:48) より:

 発生させる為にはプロパティを変更すればいいのですが、どのような場所で使うものなのでしょう?回線が早く、同時に多人数がアクセスしない(つまり、サーバの負荷がかからない)なら、AutoPostBackをtrueです。


 が、これをすると一文字入力するごとにサーバとやりとりをします。回線が遅かったり、サーバの負荷が高いと使い物になりません。ボタンクリックなどのクッションをおくことをお勧めします。



Jittaさんお返事ありがとうございます。

TextBoxのAutoPostBackプロパティーをTrueにしていますが、
PostBackが発生してくれないのは?なでしょうか・・・

動作環境としては・・・
Lan + WAN(小数)
サーバールーム内のPC間の速度は1000Mbpsですが
S/C間は早くて100Mbpsです。

Userとしては400名なのですが、運用はどうなるのか確認中で
一気に400人がアクセスする事はないと思っております

[ メッセージ編集済み 編集者: kshr 編集日時 2004-04-20 19:14 ]
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-04-20 19:10
>エントリー画面のTextBoxへ値が入っても・・・

ということは、検索画面からエントリー画面(のテキストボックス)へはアクセスできているんですよね。
ボタン.click();
でそのボタンをクリックしたことになりますので、エントリー画面のボタンのclick()を呼べば良いかと。

試さずに適当なこと書いてますけど。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-04-21 08:58
引用:

kshrさんの書き込み (2004-04-20 19:10) より:

TextBoxのAutoPostBackプロパティーをTrueにしていますが、
PostBackが発生してくれないのは?なでしょうか・・・


が〜〜ん!よくMSDNを見ないで、適当に(Winと同じに)書いていました。

引用:

ユーザーが TextBox コントロール内のテキストを変更し、そのコントロール外にタブを使って移動するたびに、サーバーへのポストバックが自動的に発生するかどうかを示す値を取得または設定します。


フォーカスがコントロール以外に移ったときに、フォーカスが入る前の値と違っていると発生する、と。さすがに「変更があるごとに」だと、通信が大変ですものね(;^_^A アセアセ…
kshr
常連さん
会議室デビュー日: 2004/04/20
投稿数: 28
お住まい・勤務地: 滋賀
投稿日時: 2004-04-21 11:20
引用:

一郎さんの書き込み (2004-04-20 19:10) より:
>エントリー画面のTextBoxへ値が入っても・・・

ということは、検索画面からエントリー画面(のテキストボックス)へはアクセスできているんですよね。
ボタン.click();
でそのボタンをクリックしたことになりますので、エントリー画面のボタンのclick()を呼べば良いかと。

試さずに適当なこと書いてますけど。



一郎様
ありがとうございました。
とりあえず、ボタンを配置し、ボタンのClickイベントを動かす事ができました。

さすがにGridのとある行の
とあるColumnへ値を挿入する事は難しそうですけど、
これで何とか仕様としては満たせそうです。(ロジックをコネコネ書けば…)

Gridと言っても、GrapeCity社のUltraWebGridを使用しますしね。。。

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