<% @ Page Language = " C# " AutoEventWireup = " true " CodeFile = " Default.aspx.cs " Inherits = " _Default " %> <! DOCTYPE html PUBLIC " -//W3C//DTD XHTML 1.1//EN " " http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd " > < html xmlns = " http://www.w3.org/1999/xhtml " > < head runat = " server " > < title > GridView无刷新手动分页 </ title > </ head > < body > < form id = " form1 " runat = " server " > < asp:ScriptManager ID = " ScriptManager1 " runat = " server " /> & nbsp; < asp:SqlDataSource ID = " SqlDataSource1 " runat = " server " ConnectionString = " <%$ ConnectionStrings:ehMemberConnectionString %> " SelectCommand = " SELECT * FROM [CertificateTypes] " ProviderName = " <%$ ConnectionStrings:ehMemberConnectionString.ProviderName %> " ></ asp:SqlDataSource > < asp:UpdatePanel ID = " UpdatePanel1 " runat = " server " > < ContentTemplate > < table cellpadding = " 0 " cellspacing = " 0 " border = " 0 " width = " 60% " style = " font-size: 11px " > < tr > < td align = " center " style = " width: 467px " > < asp:GridView ID = " GridView1 " runat = " server " AutoGenerateColumns = " False " DataKeyNames = " ID " DataSourceID = " SqlDataSource1 " PageSize = " 2 " Width = " 466px " AllowPaging = " True " > < Columns > < asp:BoundField DataField = " ID " HeaderText = " ID " InsertVisible = " False " ReadOnly = " True " SortExpression = " ID " /> < asp:BoundField DataField = " CertificateTypesName " HeaderText = " CertificateTypesName " SortExpression = " CertificateTypesName " /> < asp:BoundField DataField = " Remark " HeaderText = " Remark " SortExpression = " Remark " /> </ Columns > < PagerSettings Visible = " False " /> </ asp:GridView > </ td > </ tr > < tr > < td align = " center " style = " height: 25px; width: 467px; " > < asp:LinkButton ID = " btnFirst " CommandArgument = " first " OnClick = " PagerButtonClick " runat = " server " > 首 页 </ asp:LinkButton > < asp:LinkButton ID = " btnPrev " CommandArgument = " prev " OnClick = " PagerButtonClick " runat = " server " > 上一页 </ asp:LinkButton > < asp:LinkButton ID = " btnNext " CommandArgument = " next " OnClick = " PagerButtonClick " runat = " server " > 下一页 </ asp:LinkButton > < asp:LinkButton ID = " btnLast " CommandArgument = " last " OnClick = " PagerButtonClick " runat = " server " > 尾 页 </ asp:LinkButton > < asp:Label ID = " LblCurrentIndex " runat = " server " ></ asp:Label > < asp:Label ID = " LblPageCount " runat = " server " ></ asp:Label > < asp:Label ID = " LblRecordCount " runat = " server " ></ asp:Label > < asp:DropDownList ID = " DropDownList2 " runat = " server " AutoPostBack = " True " OnSelectedIndexChanged = " DropDownList2_SelectedIndexChanged " Height = " 10px " Width = " 38px " ></ asp:DropDownList > </ td > </ tr > </ table > </ ContentTemplate > </ asp:UpdatePanel > </ form > </ body > </ html > using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class _Default : System.Web.UI.Page ... { protected void Page_Load(object sender, EventArgs e) ...{ if (!Page.IsPostBack) ...{ GridViewBind(); for (int i = 1; i < GridView1.PageCount + 1; i++) ...{ DropDownList2.Items.Add(i.ToString()); } } } private void GridViewBind() ...{ GridView1.DataBind(); DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty); LblCurrentIndex.Text = "第 " + (GridView1.PageIndex + 1).ToString() + " 页"; LblPageCount.Text = "共 " + GridView1.PageCount.ToString() + " 页"; LblRecordCount.Text = "总共 " + dv.Count.ToString() + " 条"; } protected void PagerButtonClick(object sender, EventArgs e) ...{ string arg = ((LinkButton)sender).CommandArgument.ToString(); switch (arg) ...{ case "prev": if (GridView1.PageIndex > 0) ...{ GridView1.PageIndex -= 1; DropDownList2.SelectedValue = (GridView1.PageIndex+1).ToString(); } break; case "next": if (GridView1.PageIndex < (GridView1.PageCount - 1)) ...{ GridView1.PageIndex += 1; DropDownList2.SelectedValue = (GridView1.PageIndex + 1).ToString(); } break; case "last": GridView1.PageIndex = (GridView1.PageCount - 1); DropDownList2.SelectedValue = (GridView1.PageIndex + 1).ToString(); break; default: GridView1.PageIndex = 0; DropDownList2.SelectedValue = (GridView1.PageIndex + 1).ToString(); break; } GridViewBind(); } protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e) ...{ GridView1.PageIndex = Convert.ToInt32(DropDownList2.SelectedValue)-1; }}