DataList分页实现

  <%   @   Page   Language="C#"   %>    
  <%   @   Import   Namespace="System.Data"   %>    
  <%   @   Import   Namespace="System.Data.OleDb"   %>    
  <Script   Language="C#"   Runat="Server">    
  /*    
  Modified   By   Blur    
  Support   .Net   Framework   Beta   2    
  */    
  OleDbConnection   MyConn;    
  int   PageSize,RecordCount,PageCount,CurrentPage;    
  public   void   Page_Load(Object   src,EventArgs   e)    
  {    
  //设定PageSize    
  PageSize   =   10;    
  //连接语句    
  string   MyConnString   =   "Provider=Microsoft.Jet.OLEDB.4.0;   Data   Source="+Server.MapPath(".")+"..//DataBase//db1.mdb;";    
  MyConn   =   new   OleDbConnection(MyConnString);    
  MyConn.Open();    
   
  //第一次请求执行    
  if(!Page.IsPostBack)    
  {    
  //计算总共有多少记录    
  RecordCount   =   CalculateRecord();    
  //计算总共有多少页    
  //取整    
  PageCount   =   RecordCount/PageSize;    
  if   (RecordCount%PageSize   >   0)    
  PageCount   =   PageCount   +   1;    
  lblPageCount.Text   =   PageCount.ToString();    
  lblRecordCount.Text   =   RecordCount.ToString();    
  ViewState["PageCount"]   =   PageCount;    
  CurrentPage   =   0;    
  ViewState["PageIndex"]   =   0;    
  //绑定    
  ListBind();    
  }    
  }    
  //计算总共有多少条记录    
  public   int   CalculateRecord()    
  {    
  int   intCount;    
  string   strCount   =   "select   count(*)   as   co   from   Score";    
  OleDbCommand   MyComm   =   new   OleDbCommand(strCount,MyConn);    
  OleDbDataReader   dr   =   MyComm.ExecuteReader();    
  if(dr.Read())    
  {    
  intCount   =   Int32.Parse(dr["co"].ToString());    
  }    
  else    
  {    
  intCount   =   0;    
  }    
  dr.Close();    
  return   intCount;    
  }    
   
  ICollection   CreateSource()    
  {    
   
  int   StartIndex;    
  //设定导入的起终地址    
  StartIndex   =   CurrentPage*PageSize;    
  string   strSel   =   "select   *   from   Score";    
  DataSet   ds   =   new   DataSet();    
  OleDbDataAdapter   MyAdapter   =   new   OleDbDataAdapter(strSel,MyConn);    
  MyAdapter.Fill(ds,StartIndex,PageSize,"Score");    
  return   ds.Tables["Score"].DefaultView;    
  }    
  public   void   ListBind()    
  {    
  score.DataSource   =   CreateSource();    
  score.DataBind();    
  lbnNextPage.Enabled   =   true;    
  lbnPrevPage.Enabled   =   true;    
  if(PageCount==0)    
  {    
  lblCurrentPage.Text   =   "0";    
  lbnNextPage.Enabled   =   false;    
  lbnPrevPage.Enabled   =   false;    
  }    
  else    
  {    
  if(CurrentPage==(PageCount-1))   lbnNextPage.Enabled   =   false;    
  if(CurrentPage==0)   lbnPrevPage.Enabled   =   false;    
  lblCurrentPage.Text   =   (CurrentPage+1).ToString();    
  }    
  }    
   
  public   void   Page_OnClick(Object   sender,CommandEventArgs   e)    
  {    
  CurrentPage   =   (int)ViewState["PageIndex"];    
  PageCount   =   (int)ViewState["PageCount"];    
  string   cmd   =   e.CommandName;    
  //判断cmd,以判定翻页方向    
  switch(cmd)    
  {    
  case   "next":    
  if(CurrentPage<(PageCount-1))   CurrentPage++;    
  break;    
  case   "prev":    
  if(CurrentPage>0)   CurrentPage--;    
  break;    
  }    
   
  ViewState["PageIndex"]   =   CurrentPage;    
   
  ListBind();    
   
  }    
  </script>    
  <html>    
  <head>    
  <title></title>    
  </head>    
  <body>    
  <form   runat="server">    
  共有<asp:Label   id="lblRecordCount"   ForeColor="red"   runat="server"   />条记录      
  当前为<asp:Label   id="lblCurrentPage"   ForeColor="red"   runat="server"   />/<asp:Label   id="lblPageCount"   ForeColor="red"   runat="server"   />页      
   
  <asp:DataList   id="score"   runat="server"    
  HeaderStyle-BackColor="#aaaadd"    
  AlternatingItemStyle-BackColor="Gainsboro"    
  EditItemStyle-BackColor="yellow"    
  >    
  <ItemTemplate>    
  姓名:<%#   DataBinder.Eval(Container.DataItem,"Name")   %>    
  <asp:LinkButton   id="btnSelect"   Text="编辑"   CommandName="edit"   runat="server"   />    
  </ItemTemplate>    
  </asp:DataList>    
  <asp:LinkButton   id="lbnPrevPage"   Text="上一页"   CommandName="prev"   OnCommand="Page_OnClick"   runat="server"   />    
  <asp:LinkButton   id="lbnNextPage"   Text="下一页"   CommandName="next"   OnCommand="Page_OnClick"   runat="server"   />    
   
  </form>    
  </body>    
  </html>     
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值