我有一个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语句。
答案 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();