限制页码显示在自定义分页上
Limit the page numbers to show on Custom Paging
根据上面的教程,我能够在我的 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();
}
使用这个
把你 if block 改成这个
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。
您也可以添加它以添加您拥有的确切页数
for (int i = startPage; i <= endPage && i<dblPageCount; i++)
根据上面的教程,我能够在我的 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();
}
使用这个
把你 if block 改成这个
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。
您也可以添加它以添加您拥有的确切页数
for (int i = startPage; i <= endPage && i<dblPageCount; i++)