对于asp:Repeater的嵌套调用,可以看下:asp:Repeater嵌套调用提示上下文不存在这篇文章。 实际开发中,我们可能还需要在嵌套的Repeater中获取最外层也就是父级Repeater的值,比如他的id,那么如何获取父级Repeater绑定项中的值呢? Repeater嵌套的结构如下
<asp:Repeater ID="rptNav" runat="server" OnItemDataBound="rptNav_ItemDataBound"> <ItemTemplate> <li><a href="#"><%#DataBinder.Eval(Container.DataItem,"title")%><b></b></a> <asp:Repeater runat="server" ID="rptNavSub" > <HeaderTemplate><ul class="subnav"></HeaderTemplate> <ItemTemplate> <li><a href="list.aspx?id=<%# ((Container.NamingContainer.NamingContainer as RepeaterItem).DataItem as System.Data.DataRowView)["id"] %>" ><%#DataBinder.Eval(Container.DataItem,"title")%></a></li> </ItemTemplate> <FooterTemplate></ul></FooterTemplate> </asp:Repeater> </li> </ItemTemplate> </asp:Repeater>
要获取父级Repeater绑定项中的值很简单,需要用到NamingContainer,具体用法如下
((Container.NamingContainer.NamingContainer as RepeaterItem).DataItem as System.Data.DataRowView)["id"]