我想实现自定义分页,其中页面编号显示为 上一页1 2 3 4 5 ... 25 26 27 28 29 30下一页。
private void PopulatePager(int recordCount, int currentPage)
{
double dblPageCount = (double)((decimal)recordCount / decimal.Parse(ddlPerPage.SelectedValue));
int pageCount = (int)Math.Ceiling(dblPageCount);
recdcnt = pageCount;
List<ListItem> pages = new List<ListItem>();
if (pageCount > 0)
{
ListItem lp = new ListItem("Previous", "1", currentPage > 1);
lp.Attributes.Add("class", "pages previous");
pages.Add(lp);
//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));
ListItem li = new ListItem(i.ToString(), i.ToString(), i != currentPage);
li.Attributes.Add("class", "pages");
pages.Add(li);
}
ListItem ll = new ListItem("Next", pageCount.ToString(), currentPage < pageCount);
ll.Attributes.Add("class", "pages next");
pages.Add(ll);
//pages.Add(new ListItem("Last", pageCount.ToString(), currentPage < pageCount));
}
rptPager.DataSource = pages;
rptPager.DataBind();
}
rptPager是转发器。
这会将输出显示为 上一页1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30下一页 但我希望它显示为上一页1 2 3 4 5 ... 25 26 27 28 29 30下一页。
谢谢,
答案 0 :(得分:0)
写入逻辑以仅显示前5页编号,包括当前页面和最后5页编号
for (int i = 1; i <= pageCount; i++)
{
if ((i > currentPage - 5 && i <= currentPage) || (i > pageCount - 5))
{
// pages.Add(new ListItem(i.ToString(), i.ToString(), i != currentPage));
ListItem li = new ListItem(i.ToString(), i.ToString(), i != currentPage);
li.Attributes.Add("class", "pages");
pages.Add(li);
}
else if (((ListItem)pages[pages.Count - 1]).Text != "...")
{
ListItem li = new ListItem("...",String.Empty);
li.Attributes.Add("class", "pages");
pages.Add(li);
}
}