HTML 部分: <TABLE id="Table2" cellSpacing="1" cellPadding="1" width="540" border="0"> <TR> <TD align="right">共<asp:label id="lblRecordCount" runat="server">Label</asp:label>条记录 共<asp:label id="lblPageCount" runat="server">Label</asp:label>页 当前第<asp:label id="lblCurrentPage" runat="server">Label</asp:label>页 <asp:linkbutton id="lbnFirstPage" runat="server" CommandName="first" OnCommand="Page_OnClick">首页</asp:linkbutton> <asp:linkbutton id="lbnPrevPage" CommandName="prev" OnCommand="Page_OnClick" Runat="server">上一页</asp:linkbutton> <asp:linkbutton id="lbnNextPage" runat="server" CommandName="next" OnCommand="Page_OnClick">下一页</asp:linkbutton> <asp:linkbutton id="lbnLastPage" runat="server" CommandName="last" OnCommand="Page_OnClick">尾页</asp:linkbutton></TD> </TR> </TABLE>
Asp.Net DataList 分页的完整代码 .cs 代码 private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 PageSize = 10; sql="select * from products order by all_time desc "; 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 products"; SqlConnection Con=new SqlConnection(data.constr); SqlCommand addCommand=new SqlCommand(strCount,Con); addCommand.Connection.Open(); SqlDataReader dr; dr=addCommand.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 products"; SqlConnection Con=new SqlConnection(data.constr); DataSet ds = new DataSet(); SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,Con); MyAdapter.Fill(ds,StartIndex,PageSize,"products"); return ds.Tables["products"].DefaultView; } public void ListBind() { dl1.DataSource = CreateSource(); dl1.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; case "first": CurrentPage=0; break; case "last": CurrentPage=PageCount-1; break; } ViewState["PageIndex"] = CurrentPage; ListBind(); }