0

asp.net Repeater コントロールがあります。リピーターに 5 行だけ表示する必要があります。Google で検索しましたが、ほとんどのリソースは 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>

アップデート:

私が欲しいのは、リピーターに5つのアイテムのみを表示し、他のアイテムはリピーターの他のページにリストされることです. 上記のように、SqlDataSource を使用してページングを行うにはどうすればよいでしょうか。

4

2 に答える 2

1

コントロールは、すぐに使用Repeaterできるページングをサポートしていません。

ただし、実装することはできますが、手動でコーディングする必要があります。

Repeaterコントロール用のListViewコントロールを変更することをお勧めします

違い:

  • リピーター。このコントロールは、すぐに使用できるページング、更新、挿入、または削除操作をサポートしていません。これらの機能が必要な場合は、手動でコーディングする必要があります。

  • リストビュー. これは、すべてのデータ バインド コントロールの中で最も柔軟です。RepeaterDataListコントロールなどのテンプレートに基づいています。データ ソース コントロールに対して操作を自動的にマッピングする CRUD 操作をサポートします。サーバーページングをサポートしており、ほとんどすべてをカスタマイズできます

ところで、を使用しているため、ページング コードをクエリまたはストア プロシージャに手動で追加する必要があります。またはSqlDataSourceを使用すると、その動作を変更できます。LinqDataSourceEntityDataSource

これは簡略化されたListViewマークアップです。

    <asp:ListView runat="server" ID="lv"
        DataSourceID="lds" DataKeyNames="emp_id"
        EnableModelValidation="false"
        EnablePersistedSelection="false" 
    >
        <LayoutTemplate>
            <br />
            <br />
            A static header
            <div runat="server" id="itemPlaceHolder"></div>
            <br />
            <asp:DataPager runat="server" PageSize="4">
                <Fields>
                    <asp:NextPreviousPagerField 
                        ButtonType="Button" 
                        ShowFirstPageButton="true"
                        ShowLastPageButton="true"
                    />
                </Fields>
            </asp:DataPager>
        </LayoutTemplate>
        <ItemTemplate>
            <div style="background-color:Gray">
                First Name
                <div><asp:Label runat="server" ID="lbl" Text='<%# Eval("fname") %>'></asp:Label></div>
                <br />
                <asp:GridView ID="GridView1" runat="server" DataSource='<%# Eval("Achivements") %>' />
                <br />
                <asp:LinkButton ID="LinkButton1" Text="Select" CommandName="Select" runat="server" />
                <asp:LinkButton ID="LinkButton2" Text="Edit" CommandName="Edit" runat="server" />
                <asp:LinkButton ID="LinkButton4" Text="Delete" CommandName="Delete" runat="server" />
            </div>
        </ItemTemplate>
        <ItemSeparatorTemplate>
            <hr />
        </ItemSeparatorTemplate>
    </asp:ListView>
于 2012-07-22T09:34:22.913 に答える
0

リンクhttp://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.pageddatasource.aspxに示されている PagedDataSource を使用してください。

于 2012-07-22T09:35:56.703 に答える