1

http://www.aspsnippets.com/Articles/Custom-Paging-in-ASPNet-GridView-using-SQL-Server-Stored-Procedure.aspx

根据上面的教程,我能够在我的 gridview 上创建自定义分页,但是,我想限制页面上显示的页码。示例 当我在每页设置 10 行中显示 10,000 条记录时,页面链接将加载 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();
}
4

3 回答 3

7

如果阻止,请更改您

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。

于 2015-05-09T07:27:06.400 回答
0

用这个

设置寻呼机设置属性

更多信息使用ASP.NET 中的 GridView 分页示例

于 2015-05-09T07:11:33.997 回答
0

您还可以添加它以添加您拥有的确切页面数

      for (int i = startPage; i <= endPage && i<dblPageCount; i++)
于 2019-04-09T07:26:38.450 回答