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/
        
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    ubuntu 查看cpu核数
    安装pytorch
    杀死用kill id+父进程
    ubuntu 更改目录所有者
    查看cuda版本+安装cuda+安装conda
    挂载新硬盘
    Linux负载过高【10.13】
    C++中c_str()
    为什么C++比python快?
    C++匿名函数
  • 原文地址:https://www.cnblogs.com/jinzhao/p/1398236.html
Copyright © 2011-2022 走看看