<%@ 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" /> <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; }}