• 一个简单的分页控件


    using System;
    using System.Web;
    using System.Web.UI.WebControls;
    using System.Text;
    using System.Drawing;
    using System.Web.UI.HtmlControls;
    using System.Web.UI;
    using System.ComponentModel;

    namespace KuKu
    {
        
    /// <summary>
        
    /// Summary description for KuKuPager.
        
    /// </summary>

        public class KuKuPager:WebControl
        
    {

            
    //背景图片
            string _backGroud;        
            
    //页查询参数
            string _pageQurey;
            
    //首页编号
            int _firstPage=1;
            
    //总共的记录数目
            int _totalRecord;
            
    //页面大小
            int _pageSize;    
            
    int _pageIndex;
            
    int _totalPage;

            
    public KuKuPager()
            
    {
                               
                            
            }


            
    protected override void OnLoad(EventArgs e)
            
    {

                _pageIndex
    =_firstPage;
                
    if(HttpContext.Current.Request.QueryString[_pageQurey]!=null)
                
    {
                    _pageIndex
    = Convert.ToInt32(HttpContext.Current.Request.QueryString[_pageQurey]);
                }
                
                
    if(_pageSize!=0)
                
    {
                    
    if(_totalRecord%_pageSize==0)
                    
    {
                        _totalPage
    = _totalRecord/_pageSize;
                    }

                    
    else
                    
    {
                        _totalPage
    = _totalRecord/_pageSize+1;
                    }

                }

                
            }



            
    protected override void Render(HtmlTextWriter writer)
            
    {
                
    string first    = "<font face='webdings'>9</font>";
                
    string previous= "<font face='webdings'>7</font>";
                
    string next    = "<font face='webdings'>8</font>";
                
    string last    = "<font face='webdings'>:</font>";
                StringBuilder sb 
    =new StringBuilder();
                sb.Append(
    "<div style='float:left'>");            
                sb.Append(
    "<font class='t3' style='font-family:Courier New;font-size:12px'>");
                
    if(PageIndex==1)
                
    {
                    sb.Append(first 
    + " " + previous + " <b>");
                }

                
    else
                
    {
                    sb.Append(
    "<a href='"+BuildNewPageUrl(this.FirstPageNum)+"'>" + first + "</a> ");
                    sb.Append(
    "<a href='" + BuildNewPageUrl(this.PageIndex-1)+ "'>" + previous + "</a> <b>");
                }

                
    int j=1;
                
    if(PageIndex-5>=1)
                
    {
                    j
    =PageIndex-5;
                }

                
    int k=TotalPage;
                
    if(PageIndex+5<=TotalPage)
                
    {
                    k
    =PageIndex+5;
                }

                
    if(j>1)
                
    {
                    sb.Append(
    " <a href='" +BuildNewPageUrl(this.FirstPageNum)+"'>1</a>  ");
                }

                
    for(int i=j;i<k+1;i++)
                
    {
                    
    if(PageIndex==i)
                    
    {
                        sb.Append(
    "<span class='t2'>" + i + "</span> ");
                    }

                    
    else
                    
    {
                        sb.Append(
    "<a href='" +BuildNewPageUrl(i-this.FirstPageNum+1)+"'>" + i + "</a> ");
                    }
                    
                }

                
    if(TotalPage>k)
                
    {
                    sb.Append(
    "  <a href='" + BuildNewPageUrl(this.TotalPage)+"'>" + TotalPage + "</a> ");
                }

                
    if(PageIndex==TotalPage)
                
    {
                    sb.Append(
    "</b>" + next + " " + last);
                }

                
    else
                
    {
                    sb.Append(
    "</b><a href='" +BuildNewPageUrl(this.PageIndex+1)+"'>" + next + "</a> ");
                    sb.Append(
    "<a href='" + BuildNewPageUrl(this.TotalPage)+"'>" + last + "</a>");
                }

                sb.Append(
    "</font></div>");
                
                sb.Append(
    "<div style='float:right'>");
                sb.Append(
    "[总记录数:<span class='pagerRight'>" + TotalRecord + "</span>]");
                sb.Append(
    "[每页:<span class='pagerRight'>" + PageSize + "</span>]");
                sb.Append(
    "[总页数:<span class='pagerRight'>" + TotalPage + "</span>]");
                sb.Append(
    "[当前为第<span class='pagerRight'>"+PageIndex+"</span>页]</div>");
                
                writer.WriteLine(sb.ToString());
            }

            
    /// <summary>
            
    /// 当前页面的路径
            
    /// </summary>

            string BuildNewPageUrl(int page)
            
    {
                
                HttpRequest request
    =HttpContext.Current.Request;
                
    //页面没有参数
                if(request.QueryString.Count==0)
                
    {
                    
    return request.Url.PathAndQuery+"?"+this.PageQuery+"="+page;                    
                }

                    
    //如果当前页面没有页面查询参数,说明为第一页
                else if(request.QueryString[this.PageQuery]==null)
                
    {
                    
    return request.Url.PathAndQuery+"&"+this.PageQuery+"="+page;                                                                   
                }

                
    else
                
    {
                    
    return request.Url.PathAndQuery.Replace(this.PageQuery+"="+request.QueryString[this.PageQuery],this.PageQuery+"="+page.ToString());                
                }
                
            }
            
            
    /// <summary>
            
    /// 获取或者设置KuKuPager的背景图片
            
    /// </summary>

            public string BackGround
            
    {
                
    get
                
    {
                    
    return _backGroud;
                }

                
    set
                
    {
                    _backGroud
    =value;
                }

            }

            
    /// <summary>
            
    /// 获取或者设置KuKuPager的页查询参数
            
    /// </summary>

            public string PageQuery
            
    {
                
    get
                
    {
                    
    return _pageQurey;
                }

                
    set
                
    {
                    _pageQurey
    =value;
                }

            }

            
    /// <summary>
            
    /// 获取或者设置KuKuPager首页编号
            
    /// </summary>

            public int FirstPageNum
            
    {
                
    get
                
    {
                    
    return _firstPage;
                }

                
    set
                
    {
                    _firstPage
    =value;
                }

            }

            
    /// <summary>
            
    /// 获取或者设置KuKuPager页面大小
            
    /// </summary>

            public int PageSize
            
    {
                
    get
                
    {
                    
    return _pageSize;
                }

                
    set
                
    {
                    _pageSize
    =value;
                }

            }

            
    /// <summary>
            
    /// 获取或者设置KuKuPager总共的记录数目
            
    /// </summary>

            public int TotalRecord
            
    {
                
    get
                
    {
                    
    return _totalRecord;
                }

                
    set
                
    {
                    _totalRecord
    =value;
                }

            }

            
    public int PageIndex
            
    {
                
    get
                
    {
                    
    return _pageIndex;                
                }

            }

            
    /// <summary>
            
    /// 获取或者设置KuKuPager总页数
            
    /// </summary>

            public int TotalPage
            
    {
                
    get
                
    {                
                    
    return _totalPage;
                }

            }

            
        }

    }


  • 相关阅读:
    Java--强制转化
    Java--成绩分类
    建造者模式的应用
    抽象工厂模式的应用
    工厂模式
    第几天
    Stacking Plates(存档待续.....(没有写思路和程序))
    圆的面积
    公孙策和陆湘湘对话(少年包青天第二部第二十集末尾和第二十一集开头部分)
    简单接口回调例子
  • 原文地址:https://www.cnblogs.com/jillzhang/p/359600.html
Copyright © 2020-2023  润新知