• DATALIST 绑定数据分页


    DATALIST 绑定数据分页显示,不像GRIDVIEW 那样自带翻页功能,所以只能通过数据库存过翻页或者前台代码分页,下面是前台代码分页的源码:

    <% @ Page Language="C#" %>
    <% @ Import Namespace="System.Data" %>
    <% @ Import Namespace="System.Data.OleDb" %>
    <Script Language="C#" Runat="Server">
    OleDbConnection MyConn;
    int PageSize,RecordCount,PageCount,CurrentPage;
    public void Page_Load(Object src,EventArgs e)
    {
     //设定PageSize
     PageSize = 5;
     
     //连接语句
     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" />条记录&nbsp; 
    当前为<asp:Label id="lblCurrentPage" ForeColor="red" runat="server" />/<asp:Label id="lblPageCount" ForeColor="red" runat="server" />页&nbsp;

    <asp:DataList id="score" runat="server"
    HeaderStyle-BackColor="#aaaadd"
    AlternatingItemStyle-BackColor="Gainsboro"
    EditItemStyle-BackColor="yellow"
    >
     <ItemTemplate>
      姓名:<%# DataBinder.Eval(Container.DataItem,"Name") %>
     </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>

  • 相关阅读:
    关于react框架的一些细节问题的思考
    shouldComponentUpdate不能直接比较object
    浅谈session,cookie,sessionStorage,localStorage的区别及应用场景
    dva相关文档
    vuex 源码:深入 vuex 之辅助函数 mapState
    第三课补充01——set类型 sorted类型命令操作详解,redis管道及事务
    第三课作业——set类型、sorted set类型的增删改查,redis的事务
    第二课补充01——redis-cli命令行详解、string类型、list类型、hash类型命令操作详解
    第二课作业——redis常用命令
    第五课——备份恢复
  • 原文地址:https://www.cnblogs.com/xiarifeixue/p/1636562.html
Copyright © 2020-2023  润新知