如何获取GridView的总记录数?

本文介绍了如何准确地获取ASP.NET中GridView控件的总记录数。对于非最后一页的情况,通过计算(总页数-1)*每页行数+最后一页的行数来得出总记录数;对于最后一页,则直接获取该页的行数。此外,当使用SqlDataSource作为数据源时,可以在Selected事件中直接获取到总记录数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

C#代码

 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
 {
    if (GridView1.PageCount > 0)     //  如果页数大于0  
    {  
 
      GridView1.PageIndex = GridView1.PageCount - 1;   //  将当前显示页的索引转到最后一页   
    GridView1.DataBind();         //重新绑定数据,这是十分重要,这样才能到达最后一页  
    int lastSize = GridView1.Rows.Count;           //  然后获得最后一页的行数  
    if (GridView1.PageCount > 1)     //  如果页数大于1页,则计算出  
    {                                                       //  总行数=(总页数-1)* 每页行数    最后一页的行数  
        int rowsCount = GridView1.PageSize * (GridView1.PageCount - 1) ; // lastSize;  
            recordCount.Text = rowsCount.ToString();      //  将它赋给一个Label  
      }  
   else   
            recordCount.Text = lastSize.ToString();   //如果页数只有一页,则直接将该页的行数赋给Label  
            GridView1.PageIndex = 0;             
  }  
   else recordCount.Text = "0";     //  如果无记录,页显示0 

}

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

C#代码
protected void SqlDataSource1_Selected(object sender, SqlDataSourceStatusEventArgs e)  
{  
        lblNum.Text = e.AffectedRows.ToString();   //e.AffectedRows获取的就是总记录数  

转载于:https://www.cnblogs.com/sdjxcolin/archive/2009/04/01/1427179.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值