如何获取GridView的总记录数?
百度了⼀下,看到有很多⼈是⽤这种⽅法写的:
⽤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.    elsegridview不显示
13.            recordCount.Text = lastSize.ToString();  //如果页数只有⼀页,则直接将该页的⾏数赋给Label
14.            GridView1.PageIndex = 0;
15.    }
16.    else recordCount.Text = "0";    //  如果⽆记录,页显⽰0
[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. }
[c#]
1. protected void SqlDataSource1_Selected(object sender, SqlDataSourceStatusEventArgs e)
2. {
3.        lblNum.Text = e.AffectedRows.ToString();  //e.AffectedRows获取的就是总记录数
4. }
本⼈的⽅法如下,仅供参考:
private void BindUserList()
{
gvUserList.DataSource = UserBLL.GetUsers();
gvUserList.DataBind();
int pagenum = gvUserList.PageIndex + 1;
DataSet ds = (DataSet)gvUserList.DataSource;
int userCount = ds.Tables[0].Rows.Count;
lblUserCount.Text = userCount.ToString()+"] [第"+pagenum.ToString()+"页/共"+gvUserList.PageCount.ToString()+"页";    }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。