兄弟,不能这样简单地重新绑定
InputChildDataGrid.DataBind();
ICollection CreateTable()
{
string strSel = "select * from UserList";
DataSet ds = new DataSet(); OleDbDataAdapter MyAdapter = new OleDbDataAdapter(strSel,MyConn);
MyAdapter.Fill(ds,"Score"); return ds.Tables["Score"].DefaultView;
}
public void BindGrid()
{
usrGrid.DataSource = CreateTable();
usrGrid.DataBind();
}public void DataGrid_PageChanged(Object sender,DataGridPageChangedEventArgs e)
{
usrGrid.CurrentPageIndex = e.NewPageIndex;
BindGrid();
}

解决方案 »

  1.   

    To:L_strToolTip_Text
      你的方法跟我的没有什么区别啊,实现的功能都是一样的。
      我的问题是这样的,如果DataGrid绑定数据集后是多页的,比如有两页,当选择第二页时,如果编辑第二页的第三行数据,但是按了“编辑”列后,编辑行出现的数据却是第一页第三行的数据值,执行“更新”后实际是更新的第一页的第三行数据值。
      

  2.   

    应该是当前页索引有问题,贴出你的page_load代码
      

  3.   

    一般问题就在page_load
    这个该死的东东,我每次问题都出在她这里,
    你的问题。我也有过,更糟,我的是删除按钮
      

  4.   

    Page_Load的代码如下:if (!Page.IsPostBack)
    {
    objStock.GetStockInputChildDS(SBillID,"",SInputChildDS,SSuitID); //获取数据集
    InputChildDataGrid.DataSource=SInputChildDS;
    InputChildDataGrid.DataBind();
    }
      

  5.   

    InputChildDataGrid.DataSource=SInputChildDS;你在这的时候要邦定当前页的数据源
      

  6.   

    你用的是自动分页,我看不出有什么问题,以前我用的是自定义分页,曾遇到过同样的问题,解决了,但没用过自动分页,想不到自动分页的就地编辑也会这么菜,建议改用自定义分页,这样只要将当前页索引存到ViewState中即可
      

  7.   

    if (!Page.IsPostBack)
    {
    objStock.GetStockInputChildDS(SBillID,"",SInputChildDS,SSuitID); //获取数据集
    InputChildDataGrid.DataSource=SInputChildDS;
    InputChildDataGrid.DataBind();
    }
    InputChildDataGrid.DataBind();
    ICollection CreateTable()
    {
    string strSel = "select * from UserList";
    DataSet ds = new DataSet(); OleDbDataAdapter MyAdapter = new OleDbDataAdapter(strSel,MyConn);
    MyAdapter.Fill(ds,"Score"); return ds.Tables["Score"].DefaultView;
    }
    public void BindGrid()
    {
    usrGrid.DataSource = CreateTable();
    usrGrid.DataBind();
    }public void DataGrid_PageChanged(Object sender,DataGridPageChangedEventArgs e)
    {
    usrGrid.CurrentPageIndex = e.NewPageIndex;
    BindGrid();
    }
      

  8.   

    to gOODiDEA:对于自动分页,如何指定当前页的数据源呢?
      

  9.   

    参考 private void Page_Load(object sender, System.EventArgs e)
    {
    if ( ! this.IsPostBack ) 
    {
    ViewState["Edit"] = "0";
    this.Bind();
    } }
    private void YjDataGrid_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    ViewState["Edit"] = "1";
    YjDataGrid.EditItemIndex = e.Item.ItemIndex;
    Bind();
    } protected void YjDataGrid_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
    {
    YjDataGrid.CurrentPageIndex = e.NewPageIndex;
    YjDataGrid.DataBind();
    } private void Bind()
    {
    YjDataGrid.DataSource = m_DataView;
    YjDataGrid.DataBind();
    Pagination();
    }
      

  10.   

    各位:
      在多页时,执行删除时也会出现类似的问题,例如在DataGrid的第三页删除第三行的数据,实际是删除第一页的第三行数据,用了以上各位的方法似乎不能解决啊
      

  11.   

    DataGrid_DeleteCommand事件的代码如下: SInputChildDS.Tables[0].Rows[e.Item.ItemIndex].Delete();
    InputChildDataGrid.DataSource=SInputChildDS;
    InputChildDataGrid.EditItemIndex = -1;
    InputChildDataGrid.DataBind();