一个分页页码控件
public class PageList : CompositeControl { protected override HtmlTextWriterTag TagKey { get { return HtmlTextWriterTag.Span; } } public PageList(int pageIndex, int pageSize, int maxPageCount, int count): base() { //page count int pageCount = count / pageSize; if (count % pageSize != 0) pageCount++; //reset pageIndex if(pageIndex <0)pageIndex =0; if(pageIndex >pageCount )pageIndex = pageCount ; //url string url = Favor.CurrentPage.Request.RawUrl; if (url.Contains("?")) url.Remove(url.LastIndexOf('?')); url += "?pageIndex="; //startIndex,endIndex int startIndex = 0, endIndex = 0; GetPageArea(ref startIndex, ref endIndex, pageIndex, pageSize, pageCount); List<Control> cs = new List<Control>(); //head links if (startIndex != 0) { //<< HyperLink first = new HyperLink(); first.NavigateUrl = url + "0"; first.Text = "<<"; cs.Add(first); //... HyperLink dotted = new HyperLink(); dotted.Text = "..."; dotted.NavigateUrl = url + (pageIndex - pageSize).ToString(); cs.Add(dotted); } //middle links for (int i = startIndex; i <= endIndex; i++) { HyperLink lk = new HyperLink(); lk.Text = (i + 1).ToString(); lk.NavigateUrl = url + i.ToString(); if (i == pageIndex) lk.CssClass = "selected"; cs.Add(lk); } //tail links if (endIndex != 0) { //... HyperLink dotted = new HyperLink(); dotted.Text = "..."; dotted.NavigateUrl = url + (pageIndex + pageSize).ToString(); cs.Add(dotted); //>> HyperLink end = new HyperLink(); end.NavigateUrl = url + (pageCount - 1).ToString(); end.Text = ">>"; cs.Add(end); } foreach (Control c in cs) { Controls.Add(c); } }
作者:today4king
出处:https://www.cnblogs.com/jinzhao/archive/2009/02/25/1398236.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架