Как применить пейджинг к набору данных? - PullRequest
3 голосов
/ 11 мая 2010

Как я могу применить пейджинг к набору данных? У меня есть метод, в котором я динамически строю таблицу из набора данных. Запрос к базе данных, из которой я получаю свой набор данных, не является проблемой, но перебор данных из набора данных выполняется медленно.

Чтобы повысить производительность при загрузке страницы, содержащей много датаров, я хочу применить функцию подкачки.

Функцией, которая была бы полезна, является возможность для пользователя устанавливать размер страницы (сколько строк отображать на каждой странице).

Ответы [ 3 ]

10 голосов
/ 11 мая 2010

Если ваши данные представляют собой одну таблицу DataTable, вы можете использовать метод расширения AsEnumerable (). Это вернет данные в виде коллекции IEnumerable. Затем вы можете использовать методы расширения LINQ .Skip () и .Take ().

IEnumerable<DataRow> MyDataPage = MyDataTable.AsEnumerable().Skip(100).Take(10);

Приведенный выше код даст вам строки с 101 по 110 MyDataTable, и это будет коллекция IEnumerable, которую можно связать, как таблицу данных. Если вам нужно, чтобы это был фактический DataTable, вы можете просто вызвать CopyToDataTable () следующим образом:

DataTable NewDT = MyDataPage.CopyToDataTable();

Более подробная информация доступна здесь

0 голосов
/ 11 мая 2010

Linq - лучший вариант.

ROW_NUMBER () также является опцией в SQL Server 2005

0 голосов
/ 11 мая 2010

Вы можете использовать GridView для отображения данных и использовать его возможность подкачки: http://msdn.microsoft.com/en-us/library/5aw1xfh3%28v=VS.80%29.aspx

...