- PR -

ASP.NETにて、呼出元フォームをリロードしたい

1
投稿者投稿内容
しらたま
会議室デビュー日: 2005/08/08
投稿数: 9
投稿日時: 2005-11-27 17:34
お世話になります。
現在、ASP.NET + VB.NET にて、Webアプリケーションを開発しております。
現在、どのように対処して良いのかわからず、行き詰ってしまったのでご質問させて頂きます。

ASP画面にて、以下の2つのフォームを用意しておく。
@利用者の名前を表示するフォーム
A利用者を検索するフォーム

@のASPフォームから、javaScriptを使用してAのフォームを別窓で開きます。
Aのフォームで利用者を検索し、その情報を取得して、@のフォームに返します。
その際に、Aフォームで取得した情報をsessionオブジェクトに持たせ
@のフォームをリロードして、利用者名を表示したいと考えております。

しかし、ASP.NETでは呼出元フォームをリロードするどころか
呼出元のフォームのデータを扱うなら、javaScriptでwindow.openerを使用して値を渡すしか方法がなく困っています。

どうにか、子フォームから呼出元フォームをリロードする方法はないでしょうか?
宜しくお願い致します。m(_ _)m
でっち6号
大ベテラン
会議室デビュー日: 2005/01/31
投稿数: 176
お住まい・勤務地: Kawasaki
投稿日時: 2005-11-27 20:10
こんにちは、でっちです。

イマイチ問題点が分らなかったのですが、
window.opener.location.reload(); とか
window.opener.location.href="...."; とかは使いたくないってことですかね????

サーバサイドからクライアントを操作できないのは自明ですので、Javascriptでopenerを操作するしかないと思いますが…
しらたま
会議室デビュー日: 2005/08/08
投稿数: 9
投稿日時: 2005-11-27 20:57
>でっち6号さん
ご回答ありがとうございます。
言い回しがわかりづらく、申し訳ありません^^;

親フォームで、すでにURLが設定されたコントロールがあり
そのコントロールをクリックすると、また別の窓に設定されたURLが開くのですが
その開いたフォームで、その検索した結果を利用したいわけです。
なので、検索画面で取得したデータを、親フォームに持たせたいのですが、、、

簡単にやりたいことは、でっち6号さんのおっしゃる
window.opener.location.reload();
でリロードはできるのですが
ボタンを押したときに、sessionオブジェクトに値を保存したうえで
javaScriptでwindow.opener.location.reload();を実行する手立てはないでしょうか?

よろしくお願いいたします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-11-27 21:30
引用:

しらたまさんの書き込み (2005-11-27 20:57) より:

親フォームで、すでにURLが設定されたコントロール*4があり
そのコントロール*1をクリックすると、また別の窓に設定されたURLが開く*5のですが
その開いたフォーム*2で、その検索した結果*3を利用したいわけです。
なので、検索画面で取得したデータを、親フォームに持たせたい*6のですが、、、


*1:「そのコントロール」は、どのコントロール?
*2:「その開いたフォーム」とは、どのフォーム?
*3:「その検索した結果」とは、どこに検索したのもの?

「こそあど言葉」を使うから、わかりにくくなるんです。

*4:「すでに URL が設定されたコントロール」とは、どのコントロールの、どのフィールド(プロパティ、イベント含む)に、どのように設定されているのでしょう?
*5:「また別の窓に設定された URL が開く」の、切れ目がわかりません。「別の窓」が開くの?それとも、別の窓があって、そこから情報をとってくるの?

*6:検索画面とか親フォームって、これまで出てきているのの、どれ?

 わかりやすくするための基本は、文章ではなく、箇条書きにすることです。私が理解したところでは、、、

1.何らかのコントロールのイベントで、新規にウインドウを開く
 (window.open(url...)を、サーバコードで StartupScript に埋め込む)
2.1で新規に開くウインドウは、検索画面
3.1で開いた検索画面から、親ウインドウを更新したい

ってことなのですが、よろしいでしょうか?



引用:

簡単にやりたいことは、でっち6号さんのおっしゃる
window.opener.location.reload();
でリロードはできるのですが
ボタンを押したときに、sessionオブジェクトに値を保存したうえで
javaScriptでwindow.opener.location.reload();を実行する手立てはないでしょうか?


いったんサーバに戻してから、RegisterStartupScript で、そのスクリプトを登録する。
___________________________________________________________________
□ written by Jitta on 2005/11/27
□ Microsoft MVP :Visual Developer ASP/ASP.NET Oct.2005-Sept.2006
_________________
しらたま
会議室デビュー日: 2005/08/08
投稿数: 9
投稿日時: 2005-11-27 22:29
>Jittaさん

もうしわけありません。以後気をつけます。
では、改めて説明させて頂きます。

1.親フォームにて、ツリービューコントロールと検索ボタンコントロールが配置されている
  ツリービューにはURLが設定されており、クリックすると、後で検索された利用者の情報が表示される
2.1の検索ボタンコントロールが押されると、利用者の検索画面が別窓で開く
3.2の窓で検索された利用者を選択するボタンがあり、その選択ボタンを押すと1の親フォームに検索結果が返され、2で開いた利用者の検索画面が閉じる
4.3で返された利用者の検索結果を利用して、1に記載してある通り、利用者の情報を開く

となります。
恐らく、Jittaさんが理解して下さってる通りだと思います。

そこで、3→4の流れの際にASP,NETでsessionオブジェクトに利用者の情報を格納し
JavaScriptを使用して1の親フォームをリロードすれば、1の親フォームでリロードする際にsessionオブジェクトの情報を取得して、検索結果が取得できると考えたわけです。

>いったんサーバに戻してから、RegisterStartupScript で、そのスクリプトを登録する
とのことですが、早速明日、調査してみたいと思います。
ありがとうございます。
しらたま
会議室デビュー日: 2005/08/08
投稿数: 9
投稿日時: 2005-11-28 10:15
>でっち6号さん・Jittaさん
ありがとうございました!無事、やりたいことができました!
ページのリロードは、でっち6号さんのやり方で
ボタン押下時の処理は、Jittaさんのやり方で対応できました。

本当にありがとうございました!
1

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