我设置了嵌套转发器,但后面的代码中没有识别子转发器控件。它甚至没有添加到设计器文件中。我在aspx和ascx页面上尝试了这个,但两者都给出了同样的问题。
<asp:Repeater ID="RepeaterParent" runat="server">
<ItemTemplate>
<asp:Repeater ID="RepeaterChild" runat="server">
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
在页面上,后面的代码只识别RepeaterParent但不识别RepeaterChild。
任何人都可以帮助我吗? 非常感谢!
答案 0 :(得分:10)
与转发器(或模板)控件中使用的任何其他控件一样,您需要使用FindControl
检索控件。
因此,在父项的项数据绑定事件处理程序中,您可以执行以下操作:
var childRepeater = RepeaterParent.FindControl("RepeaterChild") as Repeater;
答案 1 :(得分:4)
我认为在父级中继器上使用RepeaterChild
时,FindControl("RepeaterChild")
可以访问。不记得确切的语法。
另请注意,FindControl
方法还将采用父转发器的当前项的上下文,因为您指定的名称将重复。命名容器在后台进行一些工作以提供唯一的命名,但有时很难跟踪。