GridView,DataList,Repeater控件应用技巧

2007-11-11 22:43

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(0, new 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(0, new 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);
        }

    }
}

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭