//删除最后一条记录后返回前一页
int DataCount=ds.Tables["xx"].Rows.Count;
if (DataCount==0)
  DG.CurrentPageIndex=0;
else
{
  int l=DataCount % DG.PageSize ;
  if(l==0)
    {

DG.CurrentPageIndex=DG.PageCount-2;
    }
}
写在绑定之前

解决方案 »

  1.   

    在删除之前判断一下:例如//如果删除的是当前页的最后一行,则自动转到上一页
    if(DataGrid1.PageCount > 1 && DataGrid1.Items.Count == 1)
       DataGrid1.CurrentPageIndex -= 1;//然后再重新绑定数据
      

  2.   

    不好意思,是在重新绑定以前判断一下,//如果删除的是当前页的最后一行,则自动转到上一页
    if(DataGrid1.PageCount > 1 && DataGrid1.Items.Count == 1)
       DataGrid1.CurrentPageIndex -= 1;//然后再重新绑定数据
      

  3.   

    private void BindGrid()
    {
    rcDataGrid.DataSource =(DataTable)ViewState["table"];
    try
    {
    rcDataGrid.DataBind();
    }
    catch
    {
    int i=rcDataGrid.CurrentPageIndex;
    while(i>=rcDataGrid.PageCount)                      
    {
    i--;
    }
    rcDataGrid.CurrentPageIndex=i;
    rcDataGrid.DataBind ();
    }
    }
      

  4.   

    //要翻页数值
    int int_PageLess;
    //
    if(Db_G_news.CurrentPageIndex == Db_G_news.PageCount-1)
    {
    //如果就只有一页
    if(Db_G_news.CurrentPageIndex == 0)
    {
    //删除后页面停在当前页
    Db_G_news.CurrentPageIndex = Db_G_news.PageCount-1;   
    }
    else
    {
    //如果最后一页只有一条记录
    if((Db_G_news.Items.Count % Db_G_news.PageSize == 1) || Db_G_news.PageSize == 1)
    {
    //把最后一页最后一条记录删除后,页面应跳转到前一页 
    int_PageLess = 2;
    }
    else      //如果最后一页的记录数大于1,那么在最后一页删除记录后仍然停在当前页
    {
    int_PageLess = 1;
    }
    Db_G_news.CurrentPageIndex = Db_G_news.PageCount - int_PageLess;
    } }
    News_DataBind();