1

クラスを継承するユーザー コントロールがあります。Oninit(そして、このクラスの機能についてコーディングを行いました)。次のアプローチを使用して、サーバー側からそのユーザー コントロールを動的にロードしています。

Mycontrol dc = (Mycontrol)Page.LoadControl("/Controls/Mycontrol.ascx");
 MyPlaceHolder.Controls.Add(dc);

しかし問題は、これでOninitはユーザーコントロールが継承したクラスの関数が実行されていないことです。なぜこれが起こっているのか、これに対する解決策は何か教えてください。

ありがとう、

4

1 に答える 1

0

ページ ライフ サイクル イベントに関するMSDN リファレンスによると、OnInit子コントロールOnInitの はページの の前に呼び出されます。

つまりPreInit、イベント チェーンが開始する前に動的コントロールを配置するには、イベントに動的コントロールを追加する必要があります。実際、のドキュメントには次のように記載されPreInitています。

このイベントは、次の目的で使用します。

  • IsPostBack プロパティをチェックして、ページが初めて処理されるかどうかを判断します。この時点で、IsCallback および IsCrossPagePostBack プロパティも設定されています。

  • 動的コントロールを作成または再作成します。

  • マスター ページを動的に設定します。

  • Theme プロパティを動的に設定します。

  • プロファイル プロパティ値の読み取りまたは設定。

于 2012-09-01T07:53:40.463 に答える