在DataGrid中分页,如果到最后一页删除了最后一页的记录后,就会出错,删除后的数据并没有原来的那么多页
应该如何解决?

解决方案 »

  1.   

    int count;
    每删除一条时
    count++;
    if(count == DataGrid1.Items.Count && DataGrid1.CurrentPageIndex > 0 )
    {
    -- DataGrid1.CurrentPageIndex;
    }
    //绑定DataGrid
    DataGrid1Bind();
      

  2.   

    private void BindGrid()
    {
    DGDebate.PageSize=2;
    openUserDB("select * from debate where IsAuditing=0 order by createTime","debate");
    DataView dv=(DataView)ds.Tables["debate"].DefaultView; 
    DGDebate.DataSource = dv;
    DGDebate.DataBind();
    ds.Tables["debate"].Clear();
    ds.Tables["debate"].Dispose();
    }
    private void btnDel_Click(object sender, System.EventArgs e)
    {
    string strSQL="delete from debate where id=1";
    OleDbCommand MyCommand = new OleDbCommand();
    MyCommand.Connection=OpenDB();
    MyCommand.CommandText=strSQL;
    MyCommand.ExecuteNonQuery();
    BindGrid();

    }
      

  3.   

    1:
    DataGrid1.CurrentPageIndex=0,
    回到第一页
    2.
    也可以判断当前删除的这条纪录是不是最后一页的最后一个记录
    如果是,就让总页数-1,不是就等于总页数
      

  4.   

    楼主.要进行判断.但一个页中的数据被全部删除时.页数要减1if(dgShow.Items.Count==1)
     {
      if(dgShow.CurrentPageIndex!=0)
        dgShow.CurrentPageIndex = dgShow.CurrentPageIndex-1;
     }
     string strSql = "delete from US";
     ExecuteSql(strSql);
     BindData();
      

  5.   

    楼主.要进行判断.当一个页中的数据被全部删除时.页数要减1if(dgShow.Items.Count==1)
     {
      if(dgShow.CurrentPageIndex!=0)
        dgShow.CurrentPageIndex = dgShow.CurrentPageIndex-1;
     }
     string strSql = "delete from US";
     ExecuteSql(strSql);
     BindData();
      

  6.   

    private void BindGrid()
    {
    DGDebate.PageSize=2;
    openUserDB("select * from debate where IsAuditing=0 order by createTime","debate");
    DataView dv=(DataView)ds.Tables["debate"].DefaultView;
    DGDebate.DataSource = dv;
    /******************************************************
    绑定前计算实际的页数,比较当前页数与实际页数,大则减小当前页*******************************************************/
    int currentPageCount = dv.Table.Rows.Count%DGDebate.PageSize==0?dv.Table.Rows.Count/DGDebate.PageSize:(dv.Table.Rows.Count/DGDebate.PageSize+1);
    //这里使用while支持一次删除多页
    while(DGDebate.CurrentPageIndex>currentPageCount-1)
       --DGDebate.CurrentPageIndex;
    DGDebate.DataBind();
    ds.Tables["debate"].Clear();
    ds.Tables["debate"].Dispose();
    }
      

  7.   

    private void BindGrid()
    {
      DGDebate.PageSize=2;
      openUserDB("select * from debate where IsAuditing=0 order by createTime","debate");
      DataView dv=(DataView)ds.Tables["debate"].DefaultView; 
      DGDebate.DataSource = dv;
      if(dv.Count==0)
        DGDebate.CurrentPageIndex=1;
      else
       while(dv.Count<=DGDebate.PageSize*(DGDebate.CurrentPageIndex-1))
           DGDebate.CurrentPageIndex --;
      DGDebate.DataBind();
      ds.Tables["debate"].Clear();
      ds.Tables["debate"].Dispose();
      

  8.   

    to sp1234
    while(dv.Count<=DGDebate.PageSize*(DGDebate.CurrentPageIndex-1))这里DGDebate.CurrentPageIndex-1应该不用减1,CurrentPageIndex的序号是从0开始算的
      

  9.   


    if dg.currentPageIndex>dg.pageCount-1 then
    if dg.pageCount=0 then
    dg.currentPageIndex=0
    else
    dg.currentPageIndex=dg.pageCount-1
    end if
    end if
    dg.dataSource="dataSource"
    dg.dataBind()
      

  10.   

    create Proc Ajax
    declare @account char,@i int
    set @i=1
    while @i<1000000
    begin 
    set @i=@i+1
    insert into AjaxUser (UserID) values (@account) 
    end不知道哪里出错了
    老是说
    在关键字 'declare' 附近有语法错误