- PR -

ユーザコントロールを入れ子にしたとき、参照元が取得できない

1
投稿者投稿内容
ペンギン
常連さん
会議室デビュー日: 2003/11/06
投稿数: 39
投稿日時: 2003-12-17 17:10
いつもお世話になっています、VB.NET暦2ヶ月のものです。

現在開発中のWebアプリケーションで、以下のケースが発生しました。

1.大元のWebフォーム
 ↑
2.画面全体を定義するWebユーザコントロール
 ↑
3.画面一部分を定義するWebユーザコントロール
 ↑
4.共通のメソッド(Server.MapPathを使うため、
  引数にSystem.Web.UI.Page型オブジェクトが必要)

以前までは(3)を直接Webフォームに貼り付けており、
(4)を呼び出すときに引数 Me.Page を指定していました。
ところが上記のようなWebユーザコントロールの入れ子
状態になったとき、自分の呼び出し元(1)のPage型
オブジェクトが取得できなくなってしまいました。
(Me.PageとかMe.ParentとかがNothingです)

(4)は他所の方が作られたので、簡単に改修すると
いうわけにはいかないのですが、上記のような
Webユーザコントロールが入れ子になった状態で、
Page型オブジェクトを取得するにはどのようにすれば
良いでしょうか?
ペンギン
常連さん
会議室デビュー日: 2003/11/06
投稿数: 39
投稿日時: 2003-12-17 18:17
自己レスです。
ユーザコントロールの変数宣言時にWithEvents句を付けたら、
あっさりと取得できるようになりました。
参考にした書籍ではWithEventsの指定は無かったのですが、
MSのサポートの中に記事があったので試してみました。

http://support.microsoft.com/default.aspx?scid=kb;ja;319100

ただ、WithEvents句がある・ないでどう違うのかはさっぱり不明…。
WithEvents句のヘルプ記述もシンプルなので全然わかりませんでした。
1

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