2016-01-27 3 views
1

У меня есть список объектов, которые я хочу отобразить определенным образом, и у меня есть больше проблем, чем я ожидал. По существу, мне нужна установка следующим образом:Отобразить иерархические данные из списка объектов

  • Родитель Уровень 2 (заголовок)
  • Уровня Ребенок 3 пунктов в таблице

Это повторяется до конца списка, который получает вытащил на каждый PageLoad , Я попытался использовать вложенные репитеры, но не смог.

<asp:Repeater runat="server" ID="parentMeetingRepeater" > 
<ItemTemplate> 
    <h5><%# GetParentMeetingName(Eval("Id")) %></h5> 
    <hr /> 

    <asp:Repeater runat="server" ID="childMeetingRepeater" > 
     <HeaderTemplate> 
      <table style="width: 100%;"> 
     </HeaderTemplate> 
     <ItemTemplate> 
      <tr> 
       <td> 
        <a href="/Display.aspx?ccbid=<%# Eval("Id")%>"><%# Eval("Name") %></a> 
       </td> 
       <td> 
        <%# Eval("Description") %> 
       </td> 
      </tr> 
     </ItemTemplate> 
     <FooterTemplate> 
      </table> 
     </FooterTemplate> 
    </asp:Repeater> 
</ItemTemplate>      

Был случай на родительском повторитель DataBind 2-го ретранслятора, но я быстро понял, что нет никакого логики, чтобы сказать это только уровень отображения 3 пунктов с родителем level2 ид. Любые идеи, как я могу атаковать это? Я думаю, что вложенные ретрансляторы могут быть неправильным направлением. - Спасибо

ответ

0

После получения некоторых советов я в итоге использовал список. Правильное связывание со списком объектов данных и вложенными повторителями приводило меня в замешательство, поэтому это гораздо более чистый маршрут.

   <asp:ListView ID="uxTaxonomies" runat="server" ItemPlaceholderID="itemPlaceholder"> 
        <LayoutTemplate> 
         <asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder> 
        </LayoutTemplate> 
        <ItemTemplate> 
         <h5><%#((TaxonomyData)Container.DataItem).Name %></h5> 
         <hr/> 
         <asp:ListView ID="uxTaxChildren" runat="server" ItemPlaceholderID="itemPlaceholder" DataSource="<%#((TaxonomyData)Container.DataItem).Taxonomy %>"> 
          <LayoutTemplate> 
           <table class="noBorder"> 
            <tbody> 
             <asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder> 
            </tbody> 
           </table> 
          </LayoutTemplate> 
          <ItemTemplate> 
           <tr> 
            <td><a href="/MeetingDisplay.aspx?ccbid=<%#((TaxonomyData)Container.DataItem).Id %>"><%#((TaxonomyData)Container.DataItem).Name %></a> </td> 
            <td><%#((TaxonomyData)Container.DataItem).Description %></td> 
           </tr> 
          </ItemTemplate> 
         </asp:ListView> 
        </ItemTemplate> 
       </asp:ListView>