I'm using .Net 4.5, model binding and currently have a repeater, which contains another repeater.
<asp:Repeater ID="rptADivisions" runat="server" ItemType="abc.Division" SelectMethod="rptADivisions_GetData">
<%#: Item.DivisionName %>
<asp:Repeater ID="rptDOfficials" runat="server" ItemType="abc.DOfficial" SelectMethod="rptDOfficials_GetData">
<p><%#: Item.FullName %></p>
<small><%#: Item.Position %></small>
public IEnumerable<abc.DOfficial> rptDOfficials_GetData([Control("rptADivisions")] string DidFilter)
I don't have VS at hand but the repeater, like most databound controls, should have something like DataBound or RowDataBound event you can hook and be able to execute some code when a row is bound to its counterpart from the datasource.
In the event, you should be able to write c# code to access the repeater (FindControl("rptDOfficials")) and get the item you actually bind to. Having these two will allow you to build a set of items and bind declaratively by calling
.DataSource = your set of items .DataBind()
At least this is how you do nested datagrids, listviews, I hope this works with the repeater too.