zoukankan      html  css  js  c++  java
  • DataList使用System.Web.UI.WebControls.PagedDataSource分页

    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;

    namespace DataListPager
    {
     /// <summary>
     /// WebForm1 的摘要说明。
     /// </summary>
     ///
     
     
       
     public class WebForm1 : System.Web.UI.Page
     {
      protected System.Web.UI.WebControls.DataList dlMessage;
      protected System.Web.UI.WebControls.Label lblCurPage;
      protected System.Web.UI.WebControls.HyperLink lnkPrev;
      protected System.Web.UI.WebControls.HyperLink lnkNext;
      protected System.Web.UI.WebControls.Button Button1;
      protected System.Web.UI.WebControls.Button Button2;
         DAL.DAL dal=new DAL.DAL();
      System.Web.UI.WebControls.PagedDataSource page=new PagedDataSource();
      private void Page_Load(object sender, System.EventArgs e)
      {
       if ( ! Page.IsPostBack)
       {
        Bind();
        
       }
      }
      
      /*
       * 首先创建一个分页类的实例
       * 再设置其数据源-DataSource属性(原来也有DataSource属性)sh
       *
       * 和DataGrid一样要设置一些属性
       * 设置允许分页 AllowPaging属性
       * 设置每页显示的项数 PageSize属性
       *
       * 设置索引
       * a.定义一变量存放当前页索引
       * b.设置索引的默认值
       * b.1 先判断页面是否有页面跳转请求
       * b.2 有则索引的值为跳转是的参数(Requst["Page"]),否则值为1.
       * c.可以显示以下状态信息-即分页信息.
       * d.判断是不是首页,否则link的url为 Request.CurrentExecutionFilePath + "?Page=" +Convert.ToString(curPage-1);
       * CurrentExecutionFilePath 当前页面所在的虚拟路径(相对路径)--\DataListPager\WebForm1.aspx
       * (原来Request还可这样用,这么多微不足道,举足轻重的东西实在太多了)
       * */

      private void Bind()
      {
       string strSql = "Select * from message";
       DataSet ds = new DataSet();
       ds = dal.GetDataSet(strSql);

       /* 创建分页类*/
       //System.Web.UI.WebControls.PagedDataSource page=new PagedDataSource();

       /* 设置数据原*/
       page.DataSource=ds.Tables[0].DefaultView;

       /* 设置分页属性*/
       page.AllowPaging=true;//允许分页
       page.PageSize=8;//设置每页显示的项数(记录数)

       /* 下面是重要部分,分页的实现*/

       int curPage;//存放当前页索引

       if(Request["Page"] != null)//是否有页面跳转请求
       {
        curPage = Convert.ToInt32(Request["Page"]);
       }
       else
       {
        curPage = 1;
       }
       page.CurrentPageIndex = curPage-1;//设置当前页的索引
       //显示状态信息
       lblCurPage.Text = "当前页:第" + curPage.ToString()+"页";

       if(!page.IsFirstPage)//如果不是当前页,link可用。
       {
        this.lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath + "?Page=" +Convert.ToString(curPage-1);
       }
       if( ! page.IsLastPage)
       {
        this.lnkNext.NavigateUrl=Request.CurrentExecutionFilePath + "?Page=" +Convert.ToString(curPage+1);
       }
       if(page.FirstIndexInPage==0)
       {
        this.Button1.Enabled=false;
       }
       if(page.CurrentPageIndex==ds.Tables[0].Rows.Count/page.PageSize)
       {
        this.Button2.Enabled=false;
       }

       this.dlMessage.DataSource = page;
       this.dlMessage.DataBind();

      }
      

      #region Web 窗体设计器生成的代码
      override protected void OnInit(EventArgs e)
      {
       //
       // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
       //
       InitializeComponent();
       base.OnInit(e);
      }
      
      /// <summary>
      /// 设计器支持所需的方法 - 不要使用代码编辑器修改
      /// 此方法的内容。
      /// </summary>
      private void InitializeComponent()
      {   
       this.Button1.Click += new System.EventHandler(this.Button1_Click);
       this.Load += new System.EventHandler(this.Page_Load);

      }
      #endregion

        }
     }
    }

    人的一生应该这样度过:当他回首往事的时候,不会因为虚度年华而悔恨,也不会因为碌碌无为而羞愧。
  • 相关阅读:
    Python连接MySQL乱码(中文变问号)
    mysql学习04 pymysql 学习
    mysql学习03
    多态与多态性
    重用父类功能的两种方式
    菱形继承问题
    组合
    继承的应用和派生的概念引出
    类的继承
    类与类型
  • 原文地址:https://www.cnblogs.com/htht66/p/883737.html
Copyright © 2011-2022 走看看