我想在我的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个元素,因此分页只显示一个页面。
int totalCount;
List<GiftVoucher> vouchers = GiftVoucher.Search(querystring, pageNumber, count, out totalCount);
resultList.DataSource = vouchers;
resultList.DataBind();
例如,如果我的totalCount为50,我想用5页进行分页......现在它只显示一页,因为我只从数据库中获得前10条记录?
那么,如何手动将listview的总项目数设置为我的totalCount变量?
答案 0 :(得分:0)
切换到ObjectDataSource并设置SelectMethod和SelectCountMethod。这样,列表不仅会获得当前页面,还会获得项目总数。