如何在ASP.Net中为Repeater控件添加分页功能?

时间:2012-07-22 09:25:41

标签: c# asp.net sql-server-2008-r2 sqldatasource

我有一个asp.net Repeater控件。我必须在转发器中只显示5行。我在谷歌搜索过它,但大部分资源都在讨论如何使用DataSet。就我而言,我使用的是SqlDataSource。 我可以在此Repeater控件中进行分页吗?

ASP.NET代码:

<asp:Repeater ID="Repeater3" runat="server" DataSourceID="SqlDataSource3">
                    <HeaderTemplate>
                        <div>
                        <table border="1">
                            <thead>
                                <tr>
                                    <td colspan="3">
                                        <center> <strong>Safety Quizzes Record</strong> </center>
                                    </td>
                                </tr>
                                <tr>
                                    <td>
                                        <center> <strong>Quiz Title</strong> </center>
                                    </td>
                                    <td>
                                        <center> <strong>Date & Time</strong> </center>
                                    </td>
                                    <td>
                                        <center> <strong>Score</strong> </center>
                                    </td>
                                </tr>
                            </thead>

                    </HeaderTemplate>
                    <ItemTemplate>
                        <tr>
                            <td>
                                <p>
                                    <%# Eval("Title") %>
                                </p>
                            </td>
                            <td>
                                <p>
                                    <%# Eval("DateTimeComplete") %>
                                </p>
                            </td>
                            <td>
                                <p>
                                    <%# Eval("Score") %>
                                </p>
                            </td>
                        </tr>
                    </ItemTemplate>
                    <FooterTemplate>
                        </table>
                        </div>
                    </FooterTemplate>
                </asp:Repeater>
                <asp:SqlDataSource ID="SqlDataSource3" runat="server" 
                    ConnectionString="<%$ ConnectionStrings:testConnectionString %>" SelectCommand="SELECT     dbo.Quiz.Title, dbo.UserQuiz.DateTimeComplete, dbo.UserQuiz.Score
FROM         dbo.employee INNER JOIN
                      dbo.UserQuiz ON dbo.employee.Username = dbo.UserQuiz.Username INNER JOIN
                      dbo.Quiz ON dbo.UserQuiz.QuizID = dbo.Quiz.QuizID
WHERE     (dbo.employee.Username = @Username)">
                    <SelectParameters>
                        <asp:Parameter Name="Username" />
                    </SelectParameters>
                </asp:SqlDataSource>

更新

我想要的是在Repeater中只显示5个项目,其他项目将在Repeater的其他页面上列出。所以如何如上所述我可以使用SqlDataSource进行Pagining。

2 个答案:

答案 0 :(得分:1)

Repeater控件不支持开箱即用的分页。

但是你可以实现它,但它需要你手动编码。

我建议您更改Repeater控件的ListView控件

的差异:

  • Repeater。如果您需要手动编码这些功能,则此控件不支持分页,更新,插入或删除操作。

  • ListView。这是所有数据绑定控件中最灵活的。它基于RepeaterDataList控件等模板。它支持CRUD操作自动映射数据源控件的操作。它支持服务器分页,您可以自定义几乎所有内容

BTW,由于您使用的是SqlDataSource,因此您必须手动将分页代码添加到查询或存储过程中,如果使用LinqDataSource或{{1},则可以更改该行为}}

这是一个简化的EntityDataSource标记:

ListView

答案 1 :(得分:0)