2010-12-17 14 views
6

ネストされたリピータが設定されていますが、コード内で子リピータコントロールが認識されません。これはデザイナーファイルに追加されていません。私はaspxとascxページでこれを試しましたが、どちらも同じ問題をもたらします。これでネストされたリピータがコードの背後で認識されない

<asp:Repeater ID="RepeaterParent" runat="server"> 
    <ItemTemplate> 

     <asp:Repeater ID="RepeaterChild" runat="server"> 
     </asp:Repeater> 

    </ItemTemplate> 
</asp:Repeater> 

ページのみの背後にあるコードはRepeaterParentを認識するがRepeaterChildません。

誰でもお手伝いできますか? 多くの感謝!

答えて

10

リピータ(またはテンプレート)コントロール内で使用される他のコントロールと同様に、FindControlを使用してコントロールを取得する必要があります。

だから、親のためのあなたの項目のデータバインドイベントハンドラで、あなたはどうなる:

var childRepeater = RepeaterParent.FindControl("RepeaterChild") as Repeater; 
+0

+1 19秒速く:) –

4

RepeaterChildあなたは私が考える親リピーターにFindControl("RepeaterChild")を使用するときにアクセスできるようになります。正確な構文を覚えていない。

また、FindControlメソッドでは、指定した名前が繰り返されるため、親リピータの現在の項目のコンテキストが使用されます。ネーミングコンテナはバックグラウンドで独自の名前付けを提供するためにいくつか動作しますが、時には追跡するのが難しいです。

関連する問題