0

asp.net ページにページング機能を実装したいと考えています。そのため、ListView と DatePager を作成します。

<div class="pagination">
                    <div class="numeric">
                    <asp:DataPager ID="resultListPager" runat="server"
                       PagedControlID="resultList">
                       <Fields>
                          <asp:NextPreviousPagerField ButtonType="Link" ShowNextPageButton="False" PreviousPageText="< Prev" />
                          <asp:NumericPagerField ButtonType="Link" NumericButtonCssClass="numericLink" />
                          <asp:NextPreviousPagerField ButtonType="Link" ShowPreviousPageButton="false" ShowNextPageButton="False" ShowLastPageButton="True" />
                          <asp:NextPreviousPagerField ButtonType="Link" ShowPreviousPageButton="false" NextPageText="Next >" />
                       </Fields>
                    </asp:DataPager>
                    </div>
                </div>

                <asp:ListView ID="resultList" runat="server" ItemPlaceholderID="itemPlaceholder" OnPagePropertiesChanging="ChangePage">

                <LayoutTemplate>
                <ul class="items_list5">
                    <asp:PlaceHolder ID="itemPlaceholder" runat="server" />
                </ul>
                </LayoutTemplate>

                <ItemTemplate>
                <li class="cat_item">
                <div class="item_image">
                                <a href="#"><img src="<%#Eval("Image")%>" alt="" /></a>
                            </div>
                            <div class="item_description">
                                <%#Eval("Name")%>
                            </div>
                </li>
                </ItemTemplate>

                <EmptyDataTemplate>
                <div>Sorry - no items found.</div>
                </EmptyDataTemplate>
                </asp:ListView>

問題は、データベースから最初の 10 個の要素しか取得していないため、ページングで 1 ページしか表示されないことです。

int totalCount;
List<GiftVoucher> vouchers = GiftVoucher.Search(querystring, pageNumber, count, out totalCount);
resultList.DataSource = vouchers;
resultList.DataBind();

たとえば、totalCount が 50 の場合、ページングを 5 ページにしたいのですが、データベースから最初の 10 レコードしか取得していないため、1 ページしか表示されませんか?

では、リストビューの合計アイテム数を手動で totalCount 変数に設定するにはどうすればよいですか?

4

1 に答える 1

0

ObjectDataSource に切り替えて、SelectMethod と SelectCountMethod の両方を設定します。このようにして、リストは現在のページだけでなく、アイテムの総数も取得します。

于 2012-11-02T15:05:35.593 に答える