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/
        
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    史上最全的浏览器 CSS & JS Hack 手册
    JavaScript1.6数组新特性和JQuery的几个工具方法
    用jquery循环map
    javascript强大的日期函数
    用 javascript 判断 IE 版本号
    常见排序算法基于JS的实现
    JavaScript中callee,caller,argument的理解
    apply()方法和call()方法
    虽然我们可能不想对元素应用3D变换,可我们一样可以开启3D引擎
    在移动端上加上代码,让字体变得平滑
  • 原文地址:https://www.cnblogs.com/jinzhao/p/1398236.html
Copyright © 2011-2022 走看看