2009-07-22 8 views
0

CollapsiblePanelExtenderを含むAJAXコンポーネントを作成しようとしています。 CPEは私のコントロールの子コントロールなので、私のコンポーネントの$ createステートメントの後に、CPEのjavascript $ createステートメントがで出力されます。したがって、コンポーネントのJSコンストラクタが実行され、CPEを見つけようとすると、CPEがまだ作成されていないため、そのCPEを見つけることができません。私が考えていた解決策の1つは、initializeメソッドでon_loadハンドラをアタッチし、ロード後までCPEのフェッチを延期することです。別の解決策は、私のコンポーネントのメソッドを呼び出してCPEを見つける起動スクリプトを登録することです。これらのソリューションのどちらもきれいに見えません。私の質問は、どのようにあなたはと思われるのですか?この種の仕事をするにはASP.NET AJAXコンポーネントwith子コンポーネント

答えて

0

initializeメソッドまでCPEを検索しないでください。そのIDを文字列プロパティとして取り出し、$ findを使って参照を取得します。

もう1つの解決策は、CPComのClientIDで渡すAddComponentPropertyのスクリプト記述子から使用する$ createの 'references'機能を使用することです。このフレームワークは、2パス・テクニックを使用してプロパティへの実際の参照を設定します。これらのメソッドはすべて最初に作成され、次に参照が設定され、順序付けの問題は回避されます。

関連する問題