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/
        
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    WebRTC相关技术预研总结
    What is "jar.mn"?
    (FFOS Gecko & Gaia) OTA
    (FFOS Gecko & Gaia) OTA
    (FFOS Gecko & Gaia) OTA
    (FFOS Gecko & Gaia) OTA
    (FFOS Gecko & Gaia) OTA
    (FFOS Gecko & Gaia) OTA
    (FFOS Gecko & Gaia) OTA
    EF实体框架 5 性能注意事项
  • 原文地址:https://www.cnblogs.com/jinzhao/p/1398236.html
Copyright © 2011-2022 走看看