zoukankan      html  css  js  c++  java
  • 一个分页页码控件

        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);
                }
                
            }
    作者:KKcat
        
    个人博客:http://jinzhao.me/
        
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    你以为在用SharePoint但事实上不是
    python 站点爬虫 下载在线盗墓笔记小说到本地的脚本
    CF 552C 进制转换
    ArcGIS制图——多图层道路压盖处理
    数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
    ANTLR4权威參考手冊(一)
    Codeforces Round #270--B. Design Tutorial: Learn from Life
    二叉树近期公共父节点
    for循环遍历字符串的还有一种方法
    Android学习笔记技巧之垂直和水平滚动视图
  • 原文地址:https://www.cnblogs.com/jinzhao/p/1398236.html
Copyright © 2011-2022 走看看