计算gridview(.net)数据源中的项目

时间:2011-09-28 16:45:53

标签: .net gridview count datasource

我有一个GridView并将列表绑定到它:

List<T> items = T.GetItems();

GridView.DataSource = items.OrderBy(x => x.SomeValue);
GridView.DataBind();

现在在数据绑定过程中,我想访问数据源中的项目总数。

protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
    //access total number of datasource items
}

GridView.Rows或GridView.DataKeys没有帮助,因为此时正在构建gridview。当然,我可以使用items.Count()但我更喜欢直接访问底层数据源。

更新

解决方案发布时没有我后面包含的OrderBy语句。

3 个答案:

答案 0 :(得分:1)

protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
   var count = ((ICollection<T>)GridView.DataSource).Count;
}

答案 1 :(得分:1)

我猜您可以通过执行以下操作来访问项目数:

      int count = (GridView1.DataSource as List<T>).Count;

希望这有助于!!

编辑1:

添加了使用的完整方法。

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {

        int count = (GridView1.DataSource as List<string>).Count;

    }

答案 2 :(得分:0)

包含我的更新后,可以使用

访问项目计数
var count = ((IEnumerable<T>)GridView.DataSource).Count();