DataList攻略_1之使用PagedDataSource分页

这次使用PagedDataSource类来实现DataList分页技术,因为这个类封装了DataGird的分页属性,我们来使用它来实现分页,我在这里做到了,第一页,上一页,下一页,最后一页,跳转到第几页这几个功能。这些功能应该都比较实用。希望对大家有所用,给大家看代码吧。 using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

using System.Data.SqlClient;

namespace DataListTest1

{

    /// <summary>

    /// WebForm1 的摘要说明。

    /// </summary>

    public class WebForm1 : System.Web.UI.Page

    {

        protected System.Web.UI.WebControls.DataList DataList1;

        protected System.Web.UI.WebControls.HyperLink HlkFirst;

        protected System.Web.UI.WebControls.HyperLink HlkPrevious;

        protected System.Web.UI.WebControls.HyperLink HlkNext;

        protected System.Web.UI.WebControls.HyperLink HlkLast;

        protected System.Web.UI.WebControls.Label LblTotalRecord;

        protected System.Web.UI.WebControls.Label LblTotalPages;

        protected System.Web.UI.WebControls.Label LblCurrent;

        protected System.Web.UI.WebControls.LinkButton LinkButton1;

        protected System.Web.UI.WebControls.TextBox TbPageIndex;



        private void Page_Load(object sender, System.EventArgs e)

        {

            // 在此处放置用户代码以初始化页面

            if(!this.IsPostBack)

            {

                this.bindtoGL();

            }

        }

        //绑定数据到DataList

        private void bindtoGL()

        {

            SqlConnection  con=new SqlConnection("server=.;database=Northwind;uid=sa;FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-hansi-font-family: " times="" new="">            con.Open();

            SqlDataAdapter sda=new SqlDataAdapter();

            sda.SelectCommand=new SqlCommand("select * from Orders",con);

            DataSet ds=new DataSet();

            sda.Fill(ds,"orders");

            PagedDataSource pds=new PagedDataSource();

            pds.DataSource=ds.Tables["orders"].DefaultView;

            pds.AllowPaging=true;

            pds.PageSize=12;

            int  CurrentPage;

            if(Request.QueryString["pageIndex"]!=null)

            {

                CurrentPage=Convert.ToInt32(Request.QueryString["pageIndex"]);

            }

            else

            {

                CurrentPage=1;

            }



            pds.CurrentPageIndex=CurrentPage-1;//CurrentPageIndex是从0页开始的所以要减1

            this.LblCurrent.Text=CurrentPage.ToString();//显示是从第1页开始

            //上一页导航

            if(!pds.IsFirstPage)

                this.HlkPrevious.NavigateUrl=Request.CurrentExecutionFilePath+"?pageIFONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-hansi-font-family: " times="" new="">            //下一页导航

            if(!pds.IsLastPage)

                this.HlkNext.NavigateUrl=Request.CurrentExecutionFilePath+"?pageIFONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-hansi-font-family: " times="" new="">            //第一页导航

            this.HlkFirst.NavigateUrl=Request.CurrentExecutionFilePath+"?pageIFONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-hansi-font-family: " times="" new="">            //最后一页导航

            this.HlkLast.NavigateUrl=Request.CurrentExecutionFilePath+"?pageIFONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-hansi-font-family: " times="" new="">            this.DataList1.DataSource=pds;

            this.DataList1.DataBind();



        }



        //这个是最后一页的按钮点击事件

        private void LinkButton1_Click(object sender, System.EventArgs e)

        {

            SqlConnection  con=new SqlConnection("server=.;database=Northwind;uid=sa;FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-hansi-font-family: " times="" new="">            con.Open();

            SqlDataAdapter sda=new SqlDataAdapter();

            sda.SelectCommand=new SqlCommand("select * from Orders",con);

            DataSet ds=new DataSet();

            sda.Fill(ds,"orders");

            PagedDataSource pds=new PagedDataSource();

            pds.DataSource=ds.Tables["orders"].DefaultView;

            pds.AllowPaging=true;

            pds.PageSize=12;

            if(this.TbPageIndex.Text.ToString()==""||Convert.ToInt32(this.TbPageIndex.Text.Trim())>=pds.PageCount)

            {

                Response.Write("输入不能为空,或则数字不能超过总页数!");


            }

            else

            {

                pds.CurrentPageIndex=Convert.ToInt32(this.TbPageIndex.Text.Trim())-1;

            }

            this.LblCurrent.Text=this.TbPageIndex.Text;

            this.DataList1.DataSource=pds;

            this.DataList1.DataBind();



        }

    }

}
posted @ 2009-03-25 13:34  ChinaP  阅读(573)  评论(0编辑  收藏  举报