2015-05-09 140 views
1

http://www.aspsnippets.com/Articles/Custom-Paging-in-ASPNet-GridView-using-SQL-Server-Stored-Procedure.aspx限制页码上显示自定义分页

基于上面的教程中,我能够在我的GridView中创建自定义的页面,但我想限制页码在页面上显示。示例当我有10,000个记录要以每页10行显示设置时,页面链接将加载1 - 1000页不理想的页面链接。

我怎样才能使输出是这样的:

首先1 2 3 4 5 6 7 8 9 10最后

,并自动调整

首先2 3 4 5 6 7 8 9 10 11最后

等等。

下面是一个创建的所有页面显示设置

private void PopulatePager(int recordCount, int currentPage) 
{ 
    double dblPageCount = (double)((decimal)recordCount/decimal.Parse(ddlPageSize.SelectedValue)); 
    int pageCount = (int)Math.Ceiling(dblPageCount); 
    List<ListItem> pages = new List<ListItem>(); 
    if (pageCount > 0) 
    { 
     pages.Add(new ListItem("First", "1", currentPage > 1)); 
     for (int i = 1; i <= pageCount; i++) 
     { 
      pages.Add(new ListItem(i.ToString(), i.ToString(), i != currentPage)); 
     } 
     pages.Add(new ListItem("Last", pageCount.ToString(), currentPage < pageCount)); 
    } 
    rptPager.DataSource = pages; 
    rptPager.DataBind(); 
} 

回答

5

改变你,如果块这个

代码
if (pageCount > 0) 
{ 
    int showMax = 10; 
    int startPage; 
    int endPage; 
    if (pageCount <= showMax) 
    { 
     startPage = 1; 
     endPage = pageCount; 
    } 
    else 
    { 
     startPage = currentPage; 
     endPage = currentPage + showMax - 1; 
    } 

    pages.Add(new ListItem("First", "1", currentPage > 1)); 

    for (int i = startPage; i <= endPage; i++) 
    { 
     pages.Add(new ListItem(i.ToString(), i.ToString(), i != currentPage)); 
    } 

    pages.Add(new ListItem("Last", pageCount.ToString(), currentPage < pageCount)); 
} 

根据需要更改showMax。

+0

这工作!谢谢:)我怎样才能包括:分页之前的结果1-10(记录总数)? – rickyProgrammer

+1

您可以在rptPager(指您的链接)寻呼机控制之前添加一个asp:Label,并根据您当前的页面设置此标签的文本。类似于“结果”+((currentPage - 1)* pageSize,+ 1)+“ - ”+ Math.Min(currentPage * pageSize,recordCount)+“of”+ recordCount – potatopeelings

+0

但是记录总数如何?例如:1-10的10,000。无论如何,谢谢,因为你已经回答了原始问题 – rickyProgrammer

0

使用此

Set Pager setting property

更多信息使用GridView Paging Sample in ASP.NET

+0

这不适用,因为我的数据源直接来自存储过程,它不支持服务器端分页或默认分页,这就是我选择自定义分页的原因。 – rickyProgrammer