我可以分页嵌套数据转发器控件的最简单方法是什么?

时间:2011-12-08 17:53:03

标签: c# asp.net

我正在使用两个嵌套的数据中继器,我想允许对外部中继器进行分页。

这是我到目前为止所做的:

<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 个答案:

答案 0 :(得分:2)

要寻找外部中继器,我过去使用了this post中列出的方法。如果您的转发器是嵌套的,我认为它不会对结果产生太大影响。您的内部中继器将计为一行。

中继器虽然对寻呼没有很大的支持。您可以考虑使用ListView(如果使用ASP.Net 3.5或更高版本)或GridView(ASP.Net 2.0或更高版本),它们支持开箱即用的分页。

答案 1 :(得分:1)

我在我的项目中使用了这个控件。

http://www.codeproject.com/KB/custom-controls/CollectionPager.aspx 可选的 http://www.codeproject.com/KB/webforms/SQLPager_For_Everything.aspx

对于嵌套,您必须使用Databoud事件并绑定子转发器。