2

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

现在,我正在使用LinqDataSource_Selectedevent with 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 检索数据?

4

1 回答 1

1

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

于 2010-08-24T17:32:13.797 回答