在page_load里的代码需要先判断
if (!IsPostBack)
{
//原来page_load代码;
}
因为每次页面加载都执行一次的话就等于刷新一次,把你点击第二页的操作覆盖了。

解决方案 »

  1.   

    DataGrid的PageIndexChanged事件处理代码加了吗?
      

  2.   

    大侠,我试过了,还是不对!
    我加在了//***之前
    结束在DataGrid1.DataBind();
    之后,对吗?
      

  3.   

    DataGrid的CurrentPageIndex属性必须是在绑定数据之前设置才有用的。
      同时你要清楚PageLoad方法是在你定义的事件处理程序之前执行的,你现在代码的写法不是很好,应该把数据绑定的代码独立成一个方法。
      

  4.   

    //string MyConnString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\myweb.mdb";
    string MyConnString = @"Provider=Microsoft.Jet.OleDB.4.0;Data Source=c:\myweb.mdb"; string strSel1 = "select * from members";

    DataSet MyDataSet = new DataSet();
    以上几句是不会错误的。 OleDbConnection MyConnection = new OleDbConnection(MyConnString);
    你的连接字串应该也没有错误。

    //打开DataAdapter OleDbDataAdapter MyAdapter1 = new OleDbDataAdapter(strSel1,MyConnection);
    这一句如果是我的话不会这么写。
    我这样写:OleDbCommand objCom=new OleDbCommand(Sql语句,MyConnection);
    OleDbDataAdapter  MyAdapter1 =new OleDbDataAdapter(objCom);
    不过这样写也没有错
    //将各表的数据,存入DataSet
    MyAdapter1.Fill(MyDataSet,"members");
    这个地方需要加一句:
    dataset.Tables.Add("members");
    然后再MyAdapter1.Fill(MyDataSet,"members");
    //交给DataGrid去显示
    DataGrid1.DataSource = MyDataSet.Tables["members"].DefaultView;

    DataGrid1.DataBind();
    这两句没有什么错.
      

  5.   

    private void dg_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
    dg.CurrentPageIndex=e.NewPageIndex;
    dg.DataBind();
    }
      

  6.   

    dataset.Tables.Add("members");//这句没有必要.
    MyAdapter1.Fill(MyDataSet,"members");因为如果DATASET没有一个名字members的表,MyAdapter1会自动造一个.
      

  7.   

    <%@ Page Language="C#" Debug="true" %>
    <% @ Import Namespace="System.Data" %>
    <% @ Import Namespace="System.Data.OleDb" %>
    <Script Language="C#" Runat="Server">
    public void Page_Load(Object src,EventArgs e)
    {
    //各种String的设置
            //string MyConnString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\myweb.mdb";
    string MyConnString = @"Provider=Microsoft.Jet.OleDB.4.0;Data Source=c:\myweb.mdb"; string strSel1 = "select * from members";

    DataSet MyDataSet = new DataSet();
    OleDbConnection MyConnection = new OleDbConnection(MyConnString);

    //打开DataAdapter
    OleDbDataAdapter MyAdapter1 = new OleDbDataAdapter(strSel1,MyConnection);


    //将各表的数据,存入DataSet
    MyAdapter1.Fill(MyDataSet,"members");
    //交给DataGrid去显示
    DataGrid1.DataSource = MyDataSet.Tables["members"].DefaultView;

    DataGrid1.DataBind();

    }private void DataGrid1_PageIndexChanged(object source,System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
    DataGrid1.CurrentPageIndex=e.NewPageIndex;
    DataGrid1.DataBind();
    }
    </script>
    <html>
    <head>
    <title></title>
    </head>
    <body>
    <form runat="server">
    <ASP:DataGrid id="DataGrid1" runat="server"
    AllowPaging="True"
    PageSize="12"
    PagerStyle-Mode="NumericPages"
    BorderColor="black"
    BorderWidth="1"
    GridLines="Both"
    CellPadding="3"
    CellSpacing="0"
    Font-Name="Verdana"
    Font-Size="8pt"
    HeaderStyle-BackColor="#aaaadd"
    AlternatingItemStyle-BackColor="#eeeeee"
    OnPageIndexChanged="DataGrid1_PageIndexChanged"
    />
    </form>
    </body>
    </html>