需要做判断if (_dg.DataSource == null)
{
SetButtonState(0);
return;
} if (_dg.DataSource.GetType().ToString().ToLower() == "system.data.datatable") 
{
newCount = ((DataTable)_dg.DataSource).Rows.Count;
}
else if(_dg.DataSource.GetType().ToString().ToLower() == "system.data.dataview") 
{
newCount = ((DataView)_dg.DataSource).Count;
}
else if(_dg.DataSource.GetType().ToString().ToLower() == "system.data.dataset") 
{
newCount = ((DataSet)_dg.DataSource).Tables[0].Rows.Count;
} if(newCount > 0)
{
PageCount = (int)((newCount - 1) / _pagesize + 1);
if(_dg.CurrentPageIndex > PageCount - 1)_dg.CurrentPageIndex = PageCount - 1;
}
else
{
PageCount = 0;
_dg.CurrentPageIndex = 0;
}

switch (_dispStyle)
{
case 1:
LabelMsg.Text = "共" + PageCount.ToString() + "页 第" + (_dg.CurrentPageIndex + 1).ToString() + "页";
LabelMsg.Text += " 总记录数:" + newCount.ToString() + "";
break;
case 2:
LabelMsg.Text = (_dg.CurrentPageIndex + 1).ToString() + "/" + PageCount.ToString() + "页";
LabelMsg.Text += " 总数:" + newCount.ToString();
break;
}

解决方案 »

  1.   

    在删除后把DataGrid1的CurrentPageIndex设为0再绑定数据即可。
      

  2.   

    高手们,我说的并不就是剩一页了,而在超过1页时的情况,要是把CurrentPageIndex=0,每次删除都会跑到第一页了,可我是有好几页了。
      

  3.   


    void DataGrid1_Delete(object src,DataGridCommandEventArgs e){
    //这里执行删除操作并重新绑定数据
    if(DataGrid1.CurrentPageIndex>=DataGrid1.PageCount)
    DataGrid1.CurrentPageIndex-=1;
    }
      

  4.   

    to  webdiyer(陕北吴旗娃) :是不是if(DataGrid1.CurrentPageIndex<=DataGrid1.PageCount)不是“>=”吧?
      

  5.   

    if ((MyDataGrid.CurrentPageIndex!=0)&&((int)e.Item.ItemIndex==0))
    {
    if (MyDataGrid.Items.Count==1)
    MyDataGrid.CurrentPageIndex-=1;
    }
    ......