.aspx内容
<%@ Page language="c#" Codebehind="WebForm2.aspx.cs" AutoEventWireup="false" Inherits="stuclass.WebForm2" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm2</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<FONT face="宋体">
<asp:DataGrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 128px; POSITION: absolute; TOP: 8px" runat="server"
Width="497px" Height="176px" AllowPaging="True" OnPageIndexChanged="change">
<PagerStyle NextPageText="下一页" PrevPageText="上一页"></PagerStyle>
</asp:DataGrid>
<asp:Button id="Button1" style="Z-INDEX: 102; LEFT: 288px; POSITION: absolute; TOP: 336px" runat="server"
Width="152px" Height="40px" Text="Button"></asp:Button>
<asp:Label id="Label1" style="Z-INDEX: 103; LEFT: 136px; POSITION: absolute; TOP: 256px" runat="server"
Width="78px" Height="24px">总共:</asp:Label>
<asp:TextBox id="TextBox1" style="Z-INDEX: 104; LEFT: 528px; POSITION: absolute; TOP: 256px"
runat="server" Width="48px" Height="24"></asp:TextBox>
<asp:Label id="Label3" style="Z-INDEX: 105; LEFT: 600px; POSITION: absolute; TOP: 256px" runat="server"
Width="32px" Height="24">页</asp:Label>
<asp:Button id="Button2" style="Z-INDEX: 106; LEFT: 456px; POSITION: absolute; TOP: 256px" runat="server"
Width="56px" Text="跳转到:" Height="24px"></asp:Button>
<asp:Label id="Label2" style="Z-INDEX: 107; LEFT: 224px; POSITION: absolute; TOP: 256px" runat="server"
Width="64px" Height="24px">当前</asp:Label>
<</FONT>
</form>
</body>
</HTML>*.aspx.ccs内容using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;namespace stuclass
{
/// <summary>
/// WebForm2 的摘要说明。
/// </summary>
public class WebForm2 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.Label Label3;
protected System.Web.UI.WebControls.Button Button2;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.LinkButton LinkButton1;
protected System.Web.UI.WebControls.LinkButton LinkButton2;
protected System.Web.UI.WebControls.DataGrid DataGrid1;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
string strcon="workstation id=XUWEI;packet size=4096;integrated security=SSPI;data source=XUWEI;persist security info=False;initial catalog=text";
string strsql="select *  from class";
System.Data.SqlClient.SqlDataAdapter dar1=new System.Data.SqlClient.SqlDataAdapter(strsql,strcon);
DataSet ds=new DataSet();
dar1.Fill(ds,"class");
DataGrid1.DataSource=ds.Tables["class"];
DataGrid1.DataBind ();
Label1.Text="共:"+(ds.Tables["class"].Rows.Count/DataGrid1.PageSize).ToString()+"页";

Label2.Text="当前第"+(DataGrid1.CurrentPageIndex+1).ToString()+"页";
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{    
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Button2.Click += new System.EventHandler(this.Button2_Click);
this.LinkButton1.Click += new System.EventHandler(this.LinkButton1_Click);
this.LinkButton2.Click += new System.EventHandler(this.LinkButton2_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void Button1_Click(object sender, System.EventArgs e)
{
Response.Redirect("WebForm3.aspx");
} private void Button2_Click(object sender, System.EventArgs e)
{

}
public void change(object sender,DataGridPageChangedEventArgs e)
{
DataGrid1.CurrentPageIndex=e.NewPageIndex;
Label2.Text="当前第"+DataGrid1.CurrentPageIndex.ToString()+"页";
}
}
}
为什么连续点"上一页"或"下一页"都没什么问题
但先点一个后再点另外一个就有bug了
比如:当前是第10页,点"下一页"变成第11页,如果下一次点"下一页",没问题,是第12页,但如果下一次点的是"上一页",他还是12页,居然不是第10页,晕死.帮个忙啊....

解决方案 »

  1.   

    http://xiaodi.cnblogs.com/archive/2005/03/17/120157.aspx
      

  2.   

    public void change(object sender,DataGridPageChangedEventArgs e)
    {
    DataGrid1.CurrentPageIndex=e.NewPageIndex;
    Label2.Text="当前第"+DataGrid1.CurrentPageIndex.ToString()+"页";         DataGrid1.DataBind(); //你加上这个看看 }我是初学 不知道对不对
      

  3.   

    DataGrid1.DataBind(); 
    加了这个确实可以了,
    每次都要在绑定一下
    为什么
    开始不 是绑定了吗
      

  4.   

    http://blog.csdn.net/lindping/archive/2006/04/06/652217.aspx
      

  5.   

    http://www.microsoft.com/china/MSDN/library/WebServices/ASP.NET/CreatingaPageableSortableDataGrid.mspx?mfr=true
      

  6.   

    private void InitializeComponent()
    {    
    this.DataGridPage.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.DataGridPage_Page);
    this.Load += new System.EventHandler(this.Page_Load);}public void DataGridPage_Page(object sender, DataGridPageChangedEventArgs e)
    {
    //设置DataGrid当前页的索引值为用户选择的页的索引
    DataGridPage.CurrentPageIndex = e.NewPageIndex;
    //重新绑定数据
    BindGrid();
    //显示当前分页信息
    ShowStats();
    }