<% @ Page Language = " c# " ResponseEncoding = " gb2312 " %> <% @ Import Namespace = " System.Data " %> <% @ Import Namespace = " System.Data.SqlClient " %> < Script Language = " C# " runat = " server " > int PageSize; int RecordCoutn; int pageCount; int CurrentPage; SqlConnection conn; void Page_Load( object sender, EventArgs e) ... { connOpen(); PageSize = 2; if (!IsPostBack) ...{ mathBd(); CurrentPage = 0; RecordCoutn=CalculateRecord(); this.lblRecordCount.Text=RecordCoutn.ToString(); pageCount = RecordCoutn / PageSize; this.lblPageCount.Text = pageCount.ToString(); ViewState["PageIndex"] = 0; ViewState["PageCount"] = pageCount; DropDown(); } } private void connOpen() ... { conn = new SqlConnection("server=ss/sqlexpress;database=Northwind;uid=sa;pwd=;"); conn.Open(); } private void mathBd() ... { int startIndex; startIndex=PageSize*CurrentPage; SqlDataAdapter sdr=new SqlDataAdapter ("select * from Employees",conn); DataSet ds=new DataSet (); sdr.Fill(ds,startIndex,PageSize,"Employees"); this.MyDataGrid.DataSource=ds.Tables["Employees"].DefaultView; this.MyDataGrid.DataBind(); lbnFirstPage.Enabled = true; lbnNextPage.Enabled = true; lbnPrevPage.Enabled = true; lbnLastPage.Enabled = true; if (CurrentPage == (pageCount-1)) ...{ lbnNextPage.Enabled = false; lbnLastPage.Enabled = false; } if (CurrentPage == 0) ...{ lbnFirstPage.Enabled = false; lbnPrevPage.Enabled = false; } this.Label2.Text = (CurrentPage + 1).ToString(); ViewState["PageIndex"] = CurrentPage; } public int CalculateRecord() ... { int intRecord; string strComm = "select count (*) as co from Employees"; SqlCommand comm = new SqlCommand(strComm, conn); SqlDataReader dr = comm.ExecuteReader(); if (dr.Read()) ...{ intRecord = Convert.ToInt32(dr["co"].ToString()); } else ...{ intRecord = 0; } dr.Close(); return intRecord; } private void Page_OnClick( object sender, CommandEventArgs e) ... { CurrentPage =(int) ViewState["PageIndex"]; pageCount=(int)ViewState["PageCount"]; string cmd = e.CommandName; switch (cmd) ...{ case "next": if (CurrentPage < (pageCount-1)) CurrentPage++; break; case"prev": if (CurrentPage > 0) CurrentPage--; break; case"last": CurrentPage = pageCount - 1; break; default: CurrentPage = System.Convert.ToInt32(cmd); break; } ViewState["PageIndex"] = CurrentPage; //myDropDownList.SelectedIndex = CurrentPage; mathBd(); } private void DropDown() ... { for (int u = 0; u < pageCount; u++) ...{ myDropDownList.Items.Add(new ListItem("第"+(u + 1).ToString() + "页", Convert.ToString(u))); } } private void listchanged( object sender, EventArgs e) ... { CurrentPage = myDropDownList.SelectedIndex; mathBd(); } </ Script > < html xmlns = " http://www.w3.org/1999/xhtml " > < head > < title > Datalist 分页 </ title > </ head > < body > < form id = " Form1 " runat = " server " > < asp:DataList id = " MyDataGrid " runat = " server " HeaderStyle - BackColor = " #aaaadd " AlternatingItemStyle - BackColor = " Gainsboro " EditItemStyle - BackColor = " yellow " > < ItemTemplate > 姓名: <% # DataBinder.Eval(Container.DataItem, " EmployeeID " ) %> </ ItemTemplate > </ asp:DataList > 共有 < asp:Label id = " lblRecordCount " ForeColor = " red " runat = " server " /> 条记录 & nbsp;当前为 < asp:Label id = " Label2 " ForeColor = " red " runat = " server " />/< asp:Label id = " lblPageCount " ForeColor = " red " runat = " server " /> 页 & nbsp; & nbsp; < br /> < hr /> < asp:LinkButton ID = " lbnFirstPage " runat = " server " CommandName = " 0 " OnCommand = " Page_OnClick " > 首页 </ asp:LinkButton > < asp:LinkButton ID = " lbnPrevPage " runat = " server " CommandName = " prev " OnCommand = " Page_OnClick " > 上页 </ 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 > < asp:DropDownList ID = " myDropDownList " runat = " server " AutoPostBack = " true " OnSelectedIndexChanged = " listchanged " > </ asp:DropDownList > </ form > </ body > </ html >