Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对gridview(.net)的数据源中的项进行计数_.net_Gridview_Count_Datasource - Fatal编程技术网

对gridview(.net)的数据源中的项进行计数

对gridview(.net)的数据源中的项进行计数,.net,gridview,count,datasource,.net,Gridview,Count,Datasource,我有一个GridView并将列表绑定到它: List<T> items = T.GetItems(); GridView.DataSource = items.OrderBy(x => x.SomeValue); GridView.DataBind(); Rows或GridView.DataKeys没有帮助,因为此时正在生成GridView。当然,我可以使用items.Count(),但我更喜欢直接访问底层数据源 更新 发布的解决方案没有我稍后包含的OrderBy语句。受保

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

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

GridView.DataSource = items.OrderBy(x => x.SomeValue);
GridView.DataBind();
Rows或GridView.DataKeys没有帮助,因为此时正在生成GridView。当然,我可以使用items.Count(),但我更喜欢直接访问底层数据源

更新

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

受保护的void GridView\u RowDataBound(对象发送方,GridViewRowEventArgs e)
protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
   var count = ((ICollection<T>)GridView.DataSource).Count;
}
{ var count=((ICollection)GridView.DataSource).count; }
我想您可以通过执行以下操作来访问项目计数:

      int count = (GridView1.DataSource as List<T>).Count;
int count=(GridView1.DataSource作为列表);
希望这有帮助

编辑1:

添加了使用的完整方法

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {

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

    }
受保护的无效GridView1\u行数据绑定(对象发送方,GridViewRowEventArgs e)
{
int count=(GridView1.DataSource作为列表);
}

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

var count = ((IEnumerable<T>)GridView.DataSource).Count();
var count=((IEnumerable)GridView.DataSource.count();

否,我得到一个错误:“对象引用未设置为对象的实例”,这里,“GridView1”是我使用的网格的ID。在那里提供您的ID,“T”是您试图绑定的列表类型。请让我知道,如果这不工作,因为它是为我工作。它不工作。我已经改变了我的控制和类型的一切。你能显示你的全部代码吗?将立即退出。我收到一个错误(尝试翻译):“System.Linq.OrderedEnumerable
2[T,System.String]类型的对象无法转换为”System.Collections.Generic.ICollection
1[T]”,那么您没有像您的问题中那样使用
列表。如果您使用的是LinqSQL数据源,请尝试添加
ToList()
在语句末尾。
var count = ((IEnumerable<T>)GridView.DataSource).Count();