在后面的代码中无法识别嵌套的Repeater

时间:2010-12-17 13:28:55

标签: asp.net repeater

我设置了嵌套转发器,但后面的代码中没有识别子转发器控件。它甚至没有添加到设计器文件中。我在aspx和ascx页面上尝试了这个,但两者都给出了同样的问题。

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

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

    </ItemTemplate>
</asp:Repeater>

在页面上,后面的代码只识别RepeaterParent但不识别RepeaterChild。

任何人都可以帮助我吗? 非常感谢!

2 个答案:

答案 0 :(得分:10)

与转发器(或模板)控件中使用的任何其他控件一样,您需要使用FindControl检索控件。

因此,在父项的项数据绑定事件处理程序中,您可以执行以下操作:

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

答案 1 :(得分:4)

我认为在父级中继器上使用RepeaterChild时,FindControl("RepeaterChild")可以访问。不记得确切的语法。

另请注意,FindControl方法还将采用父转发器的当前项的上下文,因为您指定的名称将重复。命名容器在后台进行一些工作以提供唯一的命名,但有时很难跟踪。