代码拿来看看吧
page_load方法和 grid_pageindexchanged方法贴出来翻页时应该先指定页码然后再执行databind()

解决方案 »

  1.   

    首先对datagrid的allowpaging属性设置为true
    即:
    datagrid.Allowpaging=true;
    //写个数据帮定方法
    void BindingData()
    {
    string str=@"server=yourservername;user id=sa;"+
                       @"password=pwd;database=master;";
    string sql="Select name,id,xtype,typestat from syscolumns";
    SqlConnection conn=new SqlConnection(str);
    conn.Open();
    SqlDataAdapter da=new SqlDataAdapter(sql,conn);
    DataSet ds=new DataSet();
    da.Fill(ds,"syscolumns");
    this.DataGrid1.DataSource=ds.Tables["syscolumns"].DefaultView;
    this.DataGrid1.DataBind();
    conn.Close();
    }
    //然后在你某个按扭事件中触发
        void btn_Click(object obj,EventArgs ea){
                  BindingData();
          }
      //设置翻页事件
    private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
    this.DataGrid1.CurrentPageIndex=e.NewPageIndex;
    BindingData();
    }
      
                                           wish u good luck
                                                 Greatsft
      

  2.   

    你要重新绑定数据。
    比如执行下面的代码。
    this.DataGrid1.DataSource=ds.Tables["tablename"].DefaultView;
    this.DataGrid1.DataBind();
      

  3.   

    这是我写的数据绑定方法private void SetGridSource ()
    {
        SqlConnection MyConnection = new  SqlConnection("server=TANGJ;uid=sa;pwd=sa;database=p_communication");

        MyConnection.Open();

        SqlDataAdapter da = new SqlDataAdapter("SELECT  department.departmentid, person.p_name,department.departmentname,person.cp_phone,person.cp_cellular FROM  person join department on department.departmentid = person.departmentid  order by p_id asc" , MyConnection); 
        
        DataSet ds = new DataSet();
        da.Fill(ds,"person");

        DataGrid1.DataSource = ds;
        DataGrid1.DataBind();    MyConnection.Close();}//PageLoad事件是这样的:private void Page_Load(object sender, System.EventArgs e)
    { if (!IsPostBack) {//获取数据总的行数
    SqlConnection MyConnection = new SqlConnection("server=TANGJ;uid=sa;pwd=sa;database=p_communication"); SqlCommand MyCommand = new SqlCommand("SELECT mycount = COUNT(*) FROM person",MyConnection); MyConnection.Open(); SqlDataReader dr = MyCommand.ExecuteReader(CommandBehavior.SingleRow); if (dr.Read())
    {
    DataGrid1.VirtualItemCount = (int)dr["mycount"];

    }

    dr.Close(); MyConnection.Close(); SetGridSource();
    }//设置翻页事件private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
    this.DataGrid1.CurrentPageIndex = e.NewPageIndex;
    SetGridSource();

    }
    //button触发SetGridSource()但是在翻页时DataGrid就会消失!我也不知道怎么回事!!!!不知道是不是在查询两个表时出的错呢??