思路:
在嵌套使用repeater控件时,内部的repeater控件就要动态绑定数据源。
就下面的代码示例来说,外部的repeater控件是 rptTr ,内部的repeater控件是 rptTd 。需要在 rptTr 的 onitemdatabound 的处理函数中动态绑定数据源。
前台:
<asp:Repeater ID="rptTr" runat="server" OnItemDataBound="rptTr_ItemDataBound"> <HeaderTemplate> <table border="1"> </HeaderTemplate> <ItemTemplate> <tr> <td style=" 40px"> <%# Container.DataItem %> </td> <asp:Repeater ID="rptTd" runat="server"> <ItemTemplate> <td style=" 40px"> <%# Container.DataItem %> </td> </ItemTemplate> </asp:Repeater> </tr> </ItemTemplate> <FooterTemplate> </table></FooterTemplate> </asp:Repeater>
后台:
protected void Page_Load(object sender, EventArgs e) { ArrayList list = new ArrayList(); for (int i = 0; i < 5; i++) { list.Add(i.ToString()); } rptTr.DataSource = list.ToArray(); rptTr.DataBind(); } protected void rptTr_ItemDataBound(object sender, RepeaterItemEventArgs e) { ArrayList list = new ArrayList(); for (int i = 1; i < 5; i++) { list.Add("列 " + i.ToString()); } Repeater rpt = e.Item.FindControl("rptTd") as Repeater; rpt.DataSource = list.ToArray(); rpt.DataBind(); }