C# 限制在自定义分页上显示的页码
基于上面的教程,我能够在gridview上创建自定义分页,但是,我想限制页面上显示的页码。例如,当我有10000条记录以每页10行的设置显示时,页面链接将加载1-1000个页面链接,这并不理想 如何使输出类似于以下内容: 前1 2 3 4 5 6 7 8 9 10后 并自动调整 前2 3 4 5 6 7 8 9 10 11后 等等 下面是创建“显示所有页面”设置的代码C# 限制在自定义分页上显示的页码,c#,sql,asp.net,gridview,custompaging,C#,Sql,Asp.net,Gridview,Custompaging,基于上面的教程,我能够在gridview上创建自定义分页,但是,我想限制页面上显示的页码。例如,当我有10000条记录以每页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) {
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();
}
private void populatepage(int recordCount,int currentPage)
{
double dblPageCount=(double)((decimal)recordCount/decimal.Parse(ddlPageSize.SelectedValue));
int pageCount=(int)数学上限(dblPageCount);
列表页=新列表();
如果(页面计数>0)
{
添加(新列表项(“第一”,“1”,当前页面>1));
对于(inti=1;i使用此
更多信息请使用此
更多信息请使用将您的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));
}
if(页面计数>0)
{
int showMax=10;
国际起始页;
内尾页;
如果(页数1));
对于(int i=startPage;i将您的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));
}
if(页面计数>0)
{
int showMax=10;
国际起始页;
内尾页;
如果(页数1));
对于(inti=startPage;i您还可以添加此项以添加您拥有的确切页数
for (int i = startPage; i <= endPage && i<dblPageCount; i++)
for(int i=startPage;i您还可以添加此项以添加您拥有的确切页数
for (int i = startPage; i <= endPage && i<dblPageCount; i++)
用于(int i=startPage;i这不适用,因为我的数据源直接来自存储过程,它不支持服务器端分页或默认分页,这就是我选择自定义分页的原因。这不适用,因为我的数据源直接来自存储过程,它不支持服务器端分页或默认分页,这就是我选择自定义分页的原因se自定义分页。这正在工作!谢谢:)如何在分页之前包括:结果1-10(记录总数)?您可以在rptPager(参考链接)分页控件之前添加asp:Label,并根据当前页面设置此标签的文本。类似于“结果”+((当前页面-1)*页面大小,+1)+“-”+Math.Min(currentPage*pageSize,recordCount)+“of”+recordCount但记录的总数如何?例如:10000中的1-10。无论如何,谢谢,因为您回答了原始问题抱歉,我在完成评论之前不小心按了enter。请查看我(更新的)早期评论。这很有效!谢谢:)如何在分页之前包括:结果1-10(记录总数)?您可以在rptPager(指您的链接)分页控件之前添加asp:Label,并基于当前页面设置此标签的文本。类似于“结果”+((currentPage-1)*pageSize,+1)+“-”+Math.Min(currentPage*pageSize,recordCount)“+”of“+RecordCount但记录总数如何?例如:10000条中的1-10条。无论如何,谢谢您,因为您回答了原始问题。对不起,在完成评论之前,我不小心按了enter键。请查看我(更新的)之前的评论。