【问题标题】:Display hierarchal data from list of objects显示对象列表中的分层数据
【发布时间】:2016-05-04 21:19:09
【问题描述】:

我有一个想要以特定方式显示的对象列表,但遇到的麻烦比我预期的要多。基本上我需要如下设置:

  • 父级 2(标题)
  • 表格中的儿童 3 级项目

这会重复直到每次页面加载时拉出的列表末尾。我尝试过嵌套中继器,但失败了。

<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>                       

父中继器上有一个事件来对第二个中继器进行数据绑定,但我很快意识到没有逻辑告诉它只显示具有 level2 id 父级的 3 级项目。任何想法我可以如何攻击这个?我认为嵌套中继器可能是错误的方向。 - 谢谢

【问题讨论】:

    标签: c# asp.net data-binding repeater nested-repeater


    【解决方案1】:

    在得到一些建议后,我最终改用了列表视图。与数据对象列表和嵌套中继器的正确绑定让我精神振奋,所以这是一条更清晰的路线。

                   <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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-14
      • 2015-10-11
      • 2012-12-26
      相关资源
      最近更新 更多