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 変数に設定するにはどうすればよいですか?