Search code examples
asp.netvb.netgridviewdata-bindingrepeater

How to read a dataitem from a parent repeater?


How to read a dataitem from a parent repeater?

  <asp:Repeater ID="rpt" runat="Server">
    <ItemTemplate>
      <%# DataBinder.Eval(Container.DataItem, "MyRepeaterDataItem")%>

      <asp:GridView ID="gv" runat="Server">
        <Columns>
          <asp:TemplateField>
            <HeaderTemplate>
              <%# DataBinder.Eval(Container.DataItem, "MyRepeaterDataItem")%>
            </HeaderTemplate>
            <ItemTemplate>
              TEXT
            </ItemTemplate>
          </asp:TemplateField>
        </Columns>
      </asp:GridView>

    </ItemTemplate>
  </asp:Repeater>

I am trying to get the dataitem MyRepeaterDataItem belonging to the repeater to appear in the nested gridviews header.

I have tried using .Parent and .NamingContainer but cannot get the correct syntax using VB.NET


Solution

  • Get Parent Data Item From Any Nested Control

    After a little trial and error I worked out a simple solution that can work without any code behind.

    VB.NET

    <HeaderTemplate>
      <%# DataBinder.Eval(Container, "NamingContainer.NamingContainer.DataItem.MyRepeaterDataItem")%>
    </HeaderTemplate>
    

    Where MyRepeaterDataItem is the data column.