如何获取GridView的总记录数?(转)

转自:http://wostyh.javaeye.com/blog/313507

 

用GridView.Rows.Count的话获取的只是当前页的记录数,用GridView.PageSize * GridView.PageCount的话,如果最后一页的记录数不是GridView.PageSize条的话,获取的总记录数就不准确。因此,我们要编写代码判断,如下:

C#代码 复制代码
  1. if (GridView1.PageCount > 0)     //  如果页数大于0   
  2. {   
  3.   
  4.       GridView1.PageIndex = GridView1.PageCount - 1;   //  将当前显示页的索引转到最后一页    
  5.     GridView1.DataBind();         //重新绑定数据,这是十分重要,这样才能到达最后一页   
  6.     int lastSize = GridView1.Rows.Count;           //  然后获得最后一页的行数   
  7.     if (GridView1.PageCount > 1)     //  如果页数大于1页,则计算出   
  8.     {                                                       //  总行数=(总页数-1)* 每页行数 +  最后一页的行数   
  9.         int rowsCount = GridView1.PageSize * (GridView1.PageCount - 1) + lastSize;   
  10.             recordCount.Text = rowsCount.ToString();      //  将它赋给一个Label   
  11.       }   
  12.    else    
  13.             recordCount.Text = lastSize.ToString();   //如果页数只有一页,则直接将该页的行数赋给Label   
  14.             GridView1.PageIndex = 0;             
  15.    }   
  16.    else recordCount.Text = "0";     //  如果无记录,页显示0  

 

如果用SqlDataSource作为GridView数据源的话,就很简单了,在SqlDataSource的Selected事件中编写如下的代码:

C#代码 复制代码
  1. protected void SqlDataSource1_Selected(object sender, SqlDataSourceStatusEventArgs e)   
  2. {   
  3.         lblNum.Text = e.AffectedRows.ToString();   //e.AffectedRows获取的就是总记录数   
  4. }  
posted on 2009-06-15 14:07  田田向上  阅读(2350)  评论(0编辑  收藏  举报