zoukankan      html  css  js  c++  java
  • DataList的分页

    DataList分页1 
    <% @ Page Language=C# %>
      <% @ Import Namespace=System.Data %>
      <% @ Import Namespace=System.Data.OleDb %>
      <Script Language=C# Runat=Server>
      /*
       Create By 飞刀
       http://www.aspcn.com
       2001-7-25 01:44 
       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)
       {
       ListBind();
       CurrentPage = 0;
       ViewState[PageIndex] = 0;
      
       //计算总共有多少记录
       RecordCount = CalculateRecord();
       lblRecordCount.Text = RecordCount.ToString();
      
       //计算总共有多少页
       PageCount = RecordCount/PageSize;
       lblPageCount.Text = PageCount.ToString();
       ViewState[PageCount] = PageCount;
       }
      }
      //计算总共有多少条记录
      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(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>

    用viewstate传递分页的信息,最重要的就是这一句   MyAdapter.Fill(ds,StartIndex,PageSize,Score);
    ================================================================================
    DataList分页2
    Repeater和DataList控件提供了一个快速、灵活的表现数据的方式,但是,它们没有内建的分页功能;DataGrid控件提供了内建的分页功能,但它的结构比较复杂。下面就用PagedDataSource类实现Repeater和DataList的分页。 PagedDataSource封装了DataGrid的分页属性,我们可以象DataGrid那样进行分页。代码如下:
    &nbsp;
    <%@ Page Language=C# %>
    <%@ import namespace=System.Data %>
    <%@ import namespace=System.Data.OleDb %>
    <script language=C# runat=server>
    public void Page_Load(Object src,EventArgs e) {
      OleDbConnection objConn=new OleDbConnection(Provider=Microsoft.Jet.OLEDB.4.0; Data Source= +
       Server.MapPath(../aspxWeb.mdb));
      OleDbDataAdapter objCommand=new OleDbDataAdapter(select * from Document,objConn);
      DataSet ds=new DataSet();
      objCommand.Fill(ds);

      PagedDataSource objPds = new PagedDataSource();
      objPds.DataSource = ds.Tables[0].DefaultView;
      objPds.AllowPaging = true;
      objPds.PageSize = 5;
      int CurPage;
      if (Request.QueryString[Page] != null)
        CurPage=Convert.ToInt32(Request.QueryString[Page]);
      else
        CurPage=1;

      objPds.CurrentPageIndex = CurPage-1;
      lblCurrentPage.Text = 当前页: + CurPage.ToString();

      if (!objPds.IsFirstPage)
        lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath + ?Page= + Convert.ToString(CurPage-1);

      if (!objPds.IsLastPage)
        lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+ ?Page= + Convert.ToString(CurPage+1);

      Repeater1.DataSource=objPds;
      Repeater1.DataBind();
    }
    </script>
    <html>
    <head>
    <title>Repeater控件分页的例子</title>
    <meta http-equiv=Content-Type content=text/html; charset=gb2312>
    <style>
      P,TD,DIV,SPAN {font-size:9pt}
    </style>
    </head>
    <body>
    <form name=form1 method=POST runat=server>
    <div style=padding:5px;background-color:#dedede>
    <asp:label ID=lblCurrentPage runat=server></asp:label></td>
      <td>&nbsp;<asp:HyperLink id=lnkPrev runat=server>上一页</asp:HyperLink>
      <asp:HyperLink id=lnkNext runat=server>下一页</asp:HyperLink>&nbsp;
    </div>
    <hr size=1 color=#000099/>
    <asp:Repeater ID=Repeater1 runat=server>
    <Itemtemplate>
    <div style=padding:5px;background-color:#dedede>
    <%# DataBinder.Eval(Container.DataItem, Title) %>
    </div>
    </Itemtemplate>
    </asp:Repeater>
    </form>
    </body>
    </html>
    =============================================================================
    http://www.aspsky.net/article/list.aspx?page=3&ClassID=1&NclassID=44
    http://www.csdn.net/develop/Read_Article.asp?Id=14245

  • 相关阅读:
    008. 限制上传文件的大小
    007. 实现登录验证的方式
    006. 创建包含公共类的文件夹
    005. asp.net页面常用指令
    004. 连接默认错误页
    003. 连接access数据库代码
    VS2013生成Release版本MFC程序在其他机器上运行
    MFC WebBrowser判断网页加载完成
    第一课 JAVA环境与第一个HelloWorld运行
    HTTP协议详解&TCP&OSI七层概念模型
  • 原文地址:https://www.cnblogs.com/yamajia/p/532537.html
Copyright © 2011-2022 走看看