深入DataList分页技术之使用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;pwd=");

 

            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+"?pageIndex="+Convert.ToString(CurrentPage-1);

 

            //下一页导航

 

            if(!pds.IsLastPage)

 

                this.HlkNext.NavigateUrl=Request.CurrentExecutionFilePath+"?pageIndex="+Convert.ToString(CurrentPage+1);

 

            //第一页导航

 

            this.HlkFirst.NavigateUrl=Request.CurrentExecutionFilePath+"?pageIndex="+1;

 

            //最后一页导航

 

            this.HlkLast.NavigateUrl=Request.CurrentExecutionFilePath+"?pageIndex="+pds.PageCount;

 

            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;pwd=");

 

            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();

 

             

 

        }

 

    }

 

}  

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值