• ASP.NET GridView,DataList,Repeater的通用分页



    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Data.SqlClient;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;

    namespace ustonetdonet.DotNetPagedData
    {
        
    ///  <summary>
        
    ///  本类提供GridView,DataList,Repeater的通用分页
        
    ///  参考了NetFire(Fire.Rolland.Han)http://netfire.my.gsdn.net/2005/04/04/2945/
        
    ///  
        
    ///  
        
    ///     使用方法:
        
    ///     1.在引用里添加dll的引用
        
    ///  2.using ustonetdonet.DotNetPagedData;
        
    ///  3.private DotNetPagedData pager;
        
    ///  4.page_load()
        
    ///  if(!IsPostBack)   
        
    ///  {    
        
    ///     pager=new DotNetPagedData();
        
    ///     pager.PagedPanel=this.pagedPanel;    
        
    ///     pager.GridView = this.GridView1;  //如果是DataGrid则添加此项
        
    ///     pager.Datalist=this.DataList1;    //如果是DataList则添加此项  
        
    ///     pager.Repeater=this.Repeater1;    //如果是Repeater则添加此项  
        
    ///     pager.Lnknext=this.lnkNext;    
        
    ///        pager.Lnkprev=this.lnkPrev;    
        
    ///        pager.Lnklast=this.lnklast;    
        
    ///        pager.Lnkfist=this.lnkfist;    
        
    ///        pager.Pagenum=this.Pagenum;    
        
    ///        pager.Pagecount=this.Pagecount;    
        
    ///        pager.List=this.ddl_jump; 
        
    ///        //简单示例定义DataSet外部定义,同样也可以采用执行sqlstr,并填充给DataSet,本类也重载了datapage(),详细信息可查看详细代码       
        
    ///     DataSet ds=new DataSet();    
        
    ///     ds.ReadXml(Server.MapPath("test.xml"));    
        
    ///     pager.datapage(ds,5);   
        
    ///  }  
        
    ///  
        
    ///  // DropDownList必须设定为AutoPostBack,下面添加它的事件
        
    ///  5.private void DropDownList1_SelectedIndexChanged(object sender, System.EventArgs e)  
        
    ///  {      
        
    ///     pager=new DotNetPagedData();   
        
    ///     pager.List=this.DropDownList1;   
        
    ///     pager.Lnkjump=this.HyperLink3;   
        
    ///     pager.select();              
        
    ///  }
        
    ///  </summary>



        
    public class DotNetPagedData : System.Web.UI.Page
        
    {
            
    private System.Web.UI.WebControls.GridView gridview = null;
            
    private System.Web.UI.WebControls.DataList datalist = null;
            
    private System.Web.UI.WebControls.Repeater repeater = null;
            
    private System.Web.UI.WebControls.HyperLink lnknext;
            
    private System.Web.UI.WebControls.HyperLink lnkprev;
            
    private System.Web.UI.WebControls.HyperLink lnkfist;
            
    private System.Web.UI.WebControls.HyperLink lnklast;
            
    private System.Web.UI.WebControls.HyperLink lnkjump;
            
    private System.Web.UI.WebControls.Label pagenum;
            
    private System.Web.UI.WebControls.Label pagecount;
            
    private System.Web.UI.WebControls.Panel pagedPanel;
            
    private System.Web.UI.WebControls.DropDownList list;

            
    public DotNetPagedData()
            
    {
                
    //  
                
    // TODO: 在此处添加构造函数逻辑   
                
    //  
            }


            
    public System.Web.UI.WebControls.GridView GridView
            
    {
                
    get
                
    {
                    
    return this.gridview;
                }

                
    set
                
    {
                    
    this.gridview = value;
                }

            }


            
    public System.Web.UI.WebControls.DataList Datalist
            
    {
                
    get
                
    {
                    
    return this.datalist;
                }

                
    set
                
    {
                    
    this.datalist = value;
                }

            }


            
    public System.Web.UI.WebControls.Repeater Repeater
            
    {
                
    get
                
    {
                    
    return this.repeater;
                }

                
    set
                
    {
                    
    this.repeater = value;
                }

            }


            
    public System.Web.UI.WebControls.HyperLink Lnkprev
            
    {
                
    get
                
    {
                    
    return this.lnkprev;
                }

                
    set
                
    {
                    
    this.lnkprev = value;
                }

            }


            
    public System.Web.UI.WebControls.HyperLink Lnknext
            
    {
                
    get
                
    {
                    
    return this.lnknext;
                }

                
    set
                
    {
                    
    this.lnknext = value;
                }

            }


            
    public System.Web.UI.WebControls.HyperLink Lnkfist
            
    {
                
    get
                
    {
                    
    return this.lnkfist;
                }

                
    set
                
    {
                    
    this.lnkfist = value;
                }

            }


            
    public System.Web.UI.WebControls.HyperLink Lnklast
            
    {
                
    get
                
    {
                    
    return this.lnklast;
                }

                
    set
                
    {
                    
    this.lnklast = value;
                }

            }


            
    public System.Web.UI.WebControls.HyperLink Lnkjump
            
    {
                
    get
                
    {
                    
    return this.lnkjump;
                }

                
    set
                
    {
                    
    this.lnkjump = value;
                }

            }


            
    public System.Web.UI.WebControls.Label Pagenum
            
    {
                
    get
                
    {
                    
    return this.pagenum;
                }

                
    set
                
    {
                    
    this.pagenum = value;
                }

            }


            
    public System.Web.UI.WebControls.Label Pagecount
            
    {
                
    get
                
    {
                    
    return this.pagecount;
                }

                
    set
                
    {
                    
    this.pagecount = value;
                }

            }


            
    public System.Web.UI.WebControls.DropDownList List
            
    {
                
    get
                
    {
                    
    return this.list;
                }

                
    set
                
    {
                    
    this.list = value;
                }

            }


            
    public System.Web.UI.WebControls.Panel PagedPanel
            
    {
                
    get
                
    {
                    
    return this.pagedPanel;
                }

                
    set
                
    {
                    
    this.pagedPanel = value;
                }

            }


            
    //针对一般数据邦定,不执行sqlstr
            public void datapage(DataSet ds, int pagenum)
            
    {
                PagedDataSource objPds 
    = new PagedDataSource();
                objPds.AllowPaging 
    = true;
                
    //每页显示数目   
                objPds.PageSize = pagenum;
                
    //指定数据源   
                objPds.DataSource = ds.Tables[0].DefaultView;
                
    int CurPage;
                
    //绑定dropdownlist数据   
                for (int i = 1; i <= objPds.PageCount; i++)
                
    {
                    
    this.list.Items.Add(i.ToString());
                }

                
    this.list.Items.Insert(0new ListItem("页数"""));
                
    //确定当前页数   
                if (System.Web.HttpContext.Current.Request.Params["Page"!= null)
                
    {
                    CurPage 
    = Convert.ToInt32(System.Web.HttpContext.Current.Request.Params["Page"]);
                }

                
    else
                
    {
                    CurPage 
    = 1;
                }


                objPds.CurrentPageIndex 
    = CurPage - 1;
                
    if (objPds.PageCount > 1)
                
    {
                    pagedPanel.Visible 
    = true;
                }

                
    else
                
    {
                    pagedPanel.Visible 
    = false;
                }

                
    //显示当前页数   
                this.pagenum.Text = "当前:" + CurPage.ToString() + "";
                
    //显示总共页数   
                this.pagecount.Text = "共有" + objPds.PageCount + "";
                
    //下一页   
                if (!objPds.IsLastPage)
                
    {
                    lnknext.NavigateUrl 
    = System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1);
                }

                
    //上一页   
                if (!objPds.IsFirstPage)
                
    {
                    lnkprev.NavigateUrl 
    = System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage - 1);
                }

                
    //第一页   
                if (CurPage != 1)
                
    {
                    lnkfist.NavigateUrl 
    = System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(1);
                }

                
    //最后一页   
                if (CurPage != objPds.PageCount)
                
    {
                    lnklast.NavigateUrl 
    = System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(objPds.PageCount);
                }

                
    //绑定gridview   
                if (this.gridview != null)
                
    {
                    gridview.DataSource 
    = objPds;
                    gridview.DataBind();
                }

                
    //绑定datalist   
                if (this.datalist != null)
                
    {
                    datalist.DataSource 
    = objPds;
                    datalist.DataBind();
                }

                
    //绑定repeater   
                if (this.repeater != null)
                
    {
                    repeater.DataSource 
    = objPds;
                    repeater.DataBind();
                }

            }


            
    //重载,针对执行sqlstr
            public void datapage(string sqlcon, string sqlstr, int pagenum)
            
    {
                SqlConnection objConn 
    = new SqlConnection(sqlcon);
                SqlDataAdapter objCommand 
    = new SqlDataAdapter(sqlstr, objConn);
                DataSet ds 
    = new DataSet();
                objCommand.Fill(ds);
                PagedDataSource objPds 
    = new PagedDataSource();
                objPds.AllowPaging 
    = true;
                
    //每页显示数目   
                objPds.PageSize = pagenum;
                
    //指定数据源   
                objPds.DataSource = ds.Tables[0].DefaultView;
                
    int CurPage;
                
    //绑定dropdownlist数据   
                for (int i = 1; i <= objPds.PageCount; i++)
                
    {
                    
    this.list.Items.Add(i.ToString());
                }

                
    this.list.Items.Insert(0new ListItem("页数"""));
                
    //确定当前页数   
                if (System.Web.HttpContext.Current.Request.Params["Page"!= null)
                
    {
                    CurPage 
    = Convert.ToInt32(System.Web.HttpContext.Current.Request.Params["Page"]);
                }

                
    else
                
    {
                    CurPage 
    = 1;
                }


                objPds.CurrentPageIndex 
    = CurPage - 1;
                
    if (objPds.PageCount > 1)
                
    {
                    pagedPanel.Visible 
    = true;
                }

                
    else
                
    {
                    pagedPanel.Visible 
    = false;
                }

                
    //显示当前页数   
                this.pagenum.Text = "当前:" + "" + CurPage.ToString() + "";
                
    //显示总共页数   
                this.pagecount.Text = "共有" + objPds.PageCount + "";
                
    //下一页   
                if (!objPds.IsLastPage)
                
    {
                    lnknext.NavigateUrl 
    = System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1);
                }

                
    //上一页   
                if (!objPds.IsFirstPage)
                
    {
                    lnkprev.NavigateUrl 
    = System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage - 1);
                }

                
    //第一页   
                if (CurPage != 1)
                
    {
                    lnkfist.NavigateUrl 
    = System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(1);
                }

                
    //最后一页   
                if (CurPage != objPds.PageCount)
                
    {
                    lnklast.NavigateUrl 
    = System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(objPds.PageCount);
                }

                
    //绑定gridview   
                if (this.gridview != null)
                
    {
                    gridview.DataSource 
    = objPds;
                    gridview.DataBind();
                }

                
    //绑定datalist   
                if (this.datalist != null)
                
    {
                    datalist.DataSource 
    = objPds;
                    datalist.DataBind();
                }

                
    //绑定repeater   
                if (this.repeater != null)
                
    {
                    repeater.DataSource 
    = objPds;
                    repeater.DataBind();
                }

            }


            
    //dropdownlist选择改变  
            public void select()
            
    {
                
    this.lnkjump.NavigateUrl = System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(this.list.SelectedItem.Value);
            }


        }

    }
  • 相关阅读:
    ping和traceroute原理分析异同为什么不能ping通却能traceroute (转载) 规格严格
    JDBC hang on Statement 规格严格
    邮件服务返回代码含义 规格严格
    后台分析(转载) 规格严格
    Java Socket(转载) 规格严格
    编程好习惯 规格严格
    统计图表生成 规格严格
    几篇不错的博客 规格严格
    我见过的一个让我瞠目结舌的电脑高手!
    Ubuntu 下Ape转Mp3[88250原创]
  • 原文地址:https://www.cnblogs.com/jiangyuxuan/p/842349.html
Copyright © 2020-2023  润新知