Получить данные из LinqDataSource, прежде чем пропустить и принять? - PullRequest
2 голосов
/ 24 августа 2010

У меня есть GridView, который использует LinqDataSource. 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 Ответ

1 голос
/ 24 августа 2010

Класс LINQDataSource имеет метод GetView () , который возвращает объект DataSourceView .DataSourceView имеет метод ExecuteSelect () , который будет напрямую запрашивать источник данных.Вы должны быть в состоянии использовать синтаксис LINQ для метода ExecuteSelect (), чтобы получить свою сумму.

...