在Skip and Take发生之前从LinqDataSource检索数据?

时间:2010-08-24 17:19:02

标签: c# .net linqdatasource

我有一个使用LinqDataSource的GridView。 GridView具有默认的分页启用。我想在分页之前从LinqDataSource检索数据,以便我可以使用Linq2SQL计算整个数据库的一个单独的列。

现在,我正在使用LinqDataSource_Selected LinqDataSourceStatusEventArgs.Result事件,但它只返回分页后的数据(即该页面上的数据)。

protected void linqDataSource_Selected(Object sender, LinqDataSourceStatusEventArgs e)  
{  
    var totalTime = (e.Result as List<Ticket>).Sum(t => t.TimeSpent);  
    gridView.Columns[8].FooterText = "Sum: " + totalTime;  
}

所以我的问题是:如何在分页之前从LinqDataSource检索数据?

1 个答案:

答案 0 :(得分:1)

LINQDataSource类有一个GetView()方法,它返回一个DataSourceView对象。 DataSourceView有一个ExecuteSelect()方法,它将直接查询数据源。您应该能够在ExecuteSelect()方法上使用LINQ语法来获得总和。