什么是嵌套数据重复器控件的最简单分页方法?

3
我正在处理两个嵌套的数据重复器,并希望为外部重复器允许分页。
以下是我目前的代码:
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="LinqDataSource1" OnItemDataBound="Repeater1_ItemDataBound">
        <HeaderTemplate>
            <div class="group">
        </HeaderTemplate>

        <ItemTemplate>
            <div class="question"><%#Eval("QText") %></div>
            <asp:HiddenField ID="HiddenField1" runat="server" Value='<%# setQID(Eval("QID"))%>' />

        <%--  THE INNER REPEATER--%>     
        <asp:Repeater ID="Repeater1" runat="server" DataSourceID="LinqDataSource2">
                 <HeaderTemplate>
                    <div class="answer">
                 </HeaderTemplate>
                 <ItemTemplate>

                        <%# (GetAnswer(Eval("AnsQID"))) != 1 ? (displayAnswer(Eval("AText"))) : ""%>

                </ItemTemplate>

                <FooterTemplate>
                    </div>
                </FooterTemplate>

       </asp:Repeater>
       <%--  THE INNER REPEATER ENDS HERE--%>   

        </ItemTemplate>
        <FooterTemplate>
            </div>
        </FooterTemplate>
    </asp:Repeater>

我已经搜索了谷歌和各个地方,找到了很多处理这个问题的方法。我正在使用 LinqDatasources 和两个重复器。最佳的方式是什么?

2个回答

2
为了对外部重复器进行分页,我过去使用了这篇文章中概述的方法。如果您的重复器是嵌套的,我认为这不应该对结果产生太大影响。您的内部重复器将计算为一行。
总的来说,重复器对分页的支持并不好。您可以考虑使用ListView(如果使用ASP.Net 3.5或更高版本)或GridView(ASP.Net 2.0或更高版本),它们在开箱即用的分页方面具有更多支持。

谢谢,但我使用这个是因为我想更好地控制输出。PagedDataSource对象似乎是一个可行的选择,我该如何实现它? - stooicrealism
1
@Shane Adrian Muaz - 控件方面的评论很中肯。我认为ListView虽然不能像Repeater一样提供GridView那么多的功能,但它也能提供相当多的功能。回答你的问题——这个链接http://www.dotnetcurry.com/ShowArticle.aspx?ID=345似乎可以实现你想要的功能。我不确定你是否能够集成LINQDatasource对象。我猜测你将不得不直接将LINQ查询绑定到分页数据源上,并在ItemDataBound事件上绑定嵌套的Repeater。这有帮助吗? - Crab Bucket
1
@ShaneAdrianMuaz 没问题。如果有帮助,请给我点赞。谢谢。 - Crab Bucket

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接