深入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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值