ラベルがリピーターのOnItemDataBoundイベントを介してのみアクセスできるのはなぜですか?
質問
リピーターのアイテムテンプレート内にラベルがある場合、repeater.Items [0] .FindControl(" label")を介してアクセスしようとすると、ラベルはnullになります。実際、1つのitemtemplateがありますが、Itemsは0です。 OnItemDataBoundイベントを使用するまで、e引数を介してコントロールを見つけることができません。私は単にrepeater.Items [0] .FindControl(" label")を使用するのではなく、OnItemDataBoundイベントを使用する必要がある理由について興味があります。誰かがこれを説明できますか?
解決
リピーター用のテンプレートを作成すると、実行時に挿入するものをリピーターに伝えるだけです。これらのコントロールは、テンプレートの一部ではない場合と同じように初期化されません。
テンプレート内のコントロールは、リピーターがデータバインドされているときに作成されます。このため、リピーターのライフサイクルのその時点までアクセスできません。
所属していません StackOverflow