以上程序可以实现分页当是为什么要连续点击下两下分页按钮才能切换到下一页呢?正常情况下只点击一次就行的,请高手指点!!!protected OleDbConnection cn;
protected OleDbCommand cmd;
string strSql;
void Page_Load(object sender, EventArgs e)
 {    strSql = "select * from table2";
    cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source =          E:\\work\\MyWeb\\test.mdb");
    cn.Open();
    cmd = new OleDbCommand(strSql,cn);
    OleDbDataAdapter dapter = new OleDbDataAdapter(cmd);
    DataSet ds = new DataSet();
    dapter.Fill(ds,"Tab");    
    this.DataGrid1.DataSource = ds.Tables["Tab"];
    this.DataGrid1.DataBind();
    cn.Close();
}void DataGrid1_PageIndexChanged(object sender, DataGridPageChangedEventArgs e) {
   DataGrid1.CurrentPageIndex = e.NewPageIndex;
}

解决方案 »

  1.   

    if(!IsPostBack){
        strSql = "select * from table2";
        cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source =          E:\\work\\MyWeb\\test.mdb");
        cn.Open();
        cmd = new OleDbCommand(strSql,cn);
        OleDbDataAdapter dapter = new OleDbDataAdapter(cmd);
        DataSet ds = new DataSet();
        dapter.Fill(ds,"Tab");    
        this.DataGrid1.DataSource = ds.Tables["Tab"];
        this.DataGrid1.DataBind();
        cn.Close();}
      

  2.   

    PageIndexChanged中找找看为什么没有this.DataGrid1.DataBind();这个动作。
      

  3.   

    另外对于这个程序,是不能使用“if(!IsPostBack){”去限制page_load中的代码的,否则就无法获得用户在datagrid上提交的操作值。不要盲目抄书以为凡是page_load里边给控件的地方都要判断isPostBack。
      

  4.   

    void DataGrid1_PageIndexChanged(object sender, DataGridPageChangedEventArgs e) {
       DataGrid1.CurrentPageIndex = e.NewPageIndex;
       DataGrid1.DataBind();
    }
      

  5.   

    protected OleDbConnection cn;
    protected OleDbCommand cmd;
    string strSql;
    void Page_Load(object sender, EventArgs e)
     {
       if (!ispostback)
    {
    databind();
    }    }void DataGrid1_PageIndexChanged(object sender, DataGridPageChangedEventArgs e) {
       DataGrid1.CurrentPageIndex = e.NewPageIndex;
       databind();
    }
    proteced void databind()
    {strSql = "select * from table2";
        cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source =          E:\\work\\MyWeb\\test.mdb");
        cn.Open();
        cmd = new OleDbCommand(strSql,cn);
        OleDbDataAdapter dapter = new OleDbDataAdapter(cmd);
        DataSet ds = new DataSet();
        dapter.Fill(ds,"Tab");    
        this.DataGrid1.DataSource = ds.Tables["Tab"];
        this.DataGrid1.DataBind();
        cn.Close();}