1

Calling a method in parent page from user controlに似た問題がありますが、ページの作成時にユーザー コントロールが動的に生成される点が異なります。

上記の回答で推奨される解決策を試しましたが、ページに必要なコントロールのコピーの数が事前にわからないため、Page_Load でイベントをサブスクライブできません。

このアプリケーションは、そのロジックを大幅にオーバーホールする必要がありますが、現在のプロジェクトの範囲外です。現在、優先度の低い を実装して((MyPageName)this.Page).CustomMethod();いますが、できれば「正しい」方法で実装したいと考えています。

何か提案はありますか?

編集: コントロールのコードは、ページとは別のページにあります。(プロジェクトの他の場所で再利用するつもりです。) これは、コントロールが、ページで使用できるハンドラーを認識していないことを意味します。

4

1 に答える 1

0

提供されているリンクの例とシナリオの唯一の違いは、最終的にはコントロールの変数インスタンスのスコープのコンテキストです。つまり、それらの場合、コントロールはID、その宣言で指定されたもの(たとえば、マークアップ)を使用してアクセスされます。これは、常に存在する単一のコントロールの1つだけです。

ただし、あなたの場合、コントロールのインスタンスを作成し、そのインスタンスに直接、すぐにアクセスできます。これは、例のように、次のことができることを意味します。

// alread doing this to dynamically generate, no doubt
var control = new MyControl(); 
// then subscribe to the event of this instance...
control.MyEvent += MyEventHandler;
于 2013-02-26T22:43:25.467 に答える