2009-04-07 17 views
2

私は、AJAX Control Toolkitのアコーディオンペインを持つカスタムWebパーツを、サイトマップ階層をレンダリングするために使用する子として持っています。各ペインには、テキスト入力付きのdivと、サイトマップデータの編集に使用する3つのLinkBut​​ton(「子の追加」、「更新」、および「削除」)が含まれています。動的コントロールの更新

現在、これらのコントロールはすべて、オーバーライドされたCreateChildControlsメソッドで作成されます。

[子を追加]リンクボタンをクリックすると、イベントハンドラが起動され、新しいノードがサイトマップに追加されます。ポストバックが完了すると、コントロールは階層内の新しい空のノードで再描画されますが、再描画されません。新しいGET要求の後、新しいノードが表示されます。私が問題を考えていたのは、コントロールイベントが発生する前にCreateChildControlsが呼び出されているため、子コントロールをあまりにも早く作成していたためです。そのビットをOnPreRenderメソッドに移動しました。しかし、私はページのライフサイクルで遅すぎるので、コントロールイベントは発生しません(ここではCustom Control Events Not Firing参照)。

私の質問は次のとおりです。カスタムコントロールが子コントロールイベントハンドラの結果をレンダリングする方法を教えてください。

私は、カスタムサーバーコントロールではなくWebパーツでこれをやっていることは重要です(ライフサイクルが異なるなど)。

答えて

1

ページのOnInitでEnsureChildControlsを呼び出すことができます。これにより、イベントが処理される前に子コントロールが再作成されます。

関連する問題