Как получить доступ к отдельным страницам строк DataTable

У меня есть DataTable с большим набором результатов.
Эта DataTable используется для создания нескольких страниц в PDF (по одной для каждой строки в DataTable).

После определенного количества строк генерация PDF-файла занимает слишком много времени, поэтому я хочу предоставить конечным пользователям список гиперссылок для создания отдельных PDF-файлов для каждого набора строк,
т. е. Set 1 (Ряды 0-90), Набор 2 (Ряды 91-181) и т.д.

Я хочу иметь возможность фильтровать исходный DataTable всякий раз, когда я создаю PDF для этого набора строк. Я знаю, что GridViews предлагает возможность пейджинга, но я не хочу без необходимости помещать данные в gridview.

Я надеюсь на какой-то RowFilter, где я могу сказать:

_dt.RowFilter = "Rows(0-90)"

Кто-нибудь знает о такой функции DataTables (с использованием .NET 3.5)?
Или может кто-нибудь предложить другое решение? Спасибо


person funkymushroom    schedule 11.04.2011    source источник


Ответы (1)


Попробуйте это — используйте AsEnumerable, затем используйте LINQ для запроса нужных строк.

dataTable.AsEnumerable().Take(90);

Страница 2:

dataTable.AsEnumerable().Skip(90).Take(90);
person BrandonZeider    schedule 11.04.2011
comment
О, это круто! Делает ли это копию исходного DataTable или просто фильтрует исходный DataTable? (Хочу последнее). - person funkymushroom; 11.04.2011
comment
Только фильтры — возвращаемый IEnumerable‹T› содержит указатели на фактические данные. Из MSDN: перечисляемый объект, возвращаемый методом AsEnumerable, постоянно связан с создавшей его таблицей данных. Несколько вызовов метода AsEnumerable вернут несколько независимых запрашиваемых объектов, которые все привязаны к исходному DataTable. - person BrandonZeider; 11.04.2011
comment
Спасибо, это как раз то, что мне было нужно. - person funkymushroom; 11.04.2011