- PR -

ASP.NETで別ページへのイベント通知の方法

1
投稿者投稿内容
kyoro
会議室デビュー日: 2002/10/11
投稿数: 13
お住まい・勤務地: 大阪
投稿日時: 2002-10-11 14:18
ホームページの作成実績がある、というだけでWEBアプリ製作をまかされてしまったVBプログラマです。どうぞお力をお貸しください。

(希望動作)
ページAでリストコントロールの選択項目が変更された場合に、
ページBのデータ内容を更新したいのです。
(不明点)
ページAのイベント発生をページBに伝える方法。
(画面仕様等)
実はページAは親ページで、ここにGrapeCity社のUltraWebTabを貼っています。
このTabコントロール内にプロパティ設定しているページBがほぼ自動的に表示されます。
おそらくフレームかとは思いますが、HTMLではフレームとして処理できません。
(試行錯誤)
ページBのデータ内容更新メソッドをパブリックにし、ページAから
「ページB.データ内容更新関数」というような記述で試しましたが、
ページAからはページBのパブリック関数が見えないようでした。
ページAからページBのPage_Loadイベントを強制的に呼びましたが、
無視されているようです。
マイクロソフトのページを色々見ましたが、難しくてエラーにばかりなります(号泣)
(疑問)
Sessionは、変数しか設定できないのでしょうか?
Global.asaxを利用すれば何か良い方法があるのでしょうか?
できれば、JavaScriptではなくサーバー側で行いたいのですが・・・。

もうへとへとです。どなたかお助けくださいませ。

かげん
会議室デビュー日: 2002/07/17
投稿数: 12
投稿日時: 2002-10-11 23:32
かげんです。
 単純にページAのリストコントロールを選択した時にページBの内容
 を変化させるのであれば、UltraWebListbarの TargetFrame, TargerURL
 で可能では無いでしょうか?

 気になる点は、UltraWebTabコントロールにページAのリストコントロール
 を利用されようとしている点です。
 
UltraWebTabを使うということは、ページAがアクティブの時 ページBは
 裏にいるはずですが・・・ページAのリストからの選択で裏のページBを
 更新する。
 そんな事ではないような気もしますが。

 #理解不足で実現したい事がわからないのですが?
 
ぴで
大ベテラン
会議室デビュー日: 2002/10/10
投稿数: 123
お住まい・勤務地: 東京
投稿日時: 2002-10-13 11:32
引用:
ページBのデータ内容更新メソッドをパブリックにし、ページAから
「ページB.データ内容更新関数」というような記述で試しましたが、
ページAからはページBのパブリック関数が見えないようでした。
ページAからページBのPage_Loadイベントを強制的に呼びましたが、
無視されているようです。


別ページへのイベント通知、というのが何をしたいのかよく分かりませんが。
ページBのデータ更新メソッドを呼ぶだけなら以下のようにすればよいかと。
コード:
namespace xxx
{
  public class PageA : System.Web.UI.Page {
      :
    (ページAのリストコントロールから更新データ?を取得)
        :
    namespace名.PageB B = new namespace名.PageB();
    B.PublicMethod("更新データ");
        :

もちろん、PageBはWebフォーム(PageB.aspx)として実行されているわけではなく、
PageBクラスのインスタンスを実行しているだけなので、
PageB上のサーバコントロールを参照しているメソッドを呼んでも意味が無いため、
メソッドのパラメータを使ってSQLを組み立てて発行するだけにしてやれば
共通的につかえるのでは?

いずれにしてもやりたいことが伝わらないので、まともな回答は出てこないと思いますヨ

---
UltraWebTabコントロールは使ったことがないのですが、
タブ切替の時は、スタイルシートでの表示切替でなく、
ページBが再度実行されて表示されるのですか?
kyoro
会議室デビュー日: 2002/10/11
投稿数: 13
お住まい・勤務地: 大阪
投稿日時: 2002-10-14 13:03
かげんさん、ぴでさん、丁寧なアドバイスを有り難うございます。

説明不足、というか説明ベタですみません。
実現したい動作は下記の通りです。

ページAにはリストコントロールと、UltraWebTabが貼ってあります。
UltraWebTabにはTAB1,2,3があります。
TAB1にはページBが設定されています。
TAB1でページBを表示中にリストコントロールの選択項目を変更された場合に
ページBのデータ内容を表示更新したいのです。

Toかげんさん
 UltraWebListbarについては知識がないのですが、残念ながら購入予算が出そう
 にありません。とほほ。
 「別ページへのイベント通知」とは・・・
 ページAのリストコントロール選択変更のイベント内から、
 ページBの「データ内容変更」のユーザー定義イベントを
 呼び出したい、と考えていたのです。
 WEBアプリのイベントって、どうも理解できなくて・・・。

Toぴでさん
 アドバイスいただいた方法で試してみようと思います。
 namespaceについて、もっと勉強しないといけないのですが。
 ところで、UltraWebTabのタブ切替では、表示されるページが再度
 実行されると理解しています。 でも、もう少し調べてみます。
 
今週、なんとか頑張って結果報告させていただきます!
またどうぞよろしくお願いいたします。
 
kyoro
会議室デビュー日: 2002/10/11
投稿数: 13
お住まい・勤務地: 大阪
投稿日時: 2002-10-17 16:14
残念な結果報告です。
今回の希望動作はUltraWebTabでは実現できない、ということになり、
通常のフレームで行うことになりました。
こちらの「フレーム間のデータやりとり」スレッドを参考に
実現することができました。
皆様、本当にありがとうございました。
1

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