Пейджинг с использованием Linq-to-sql, Listview и Datapager - PullRequest
0 голосов
/ 08 апреля 2011

Я использую LINQ to SQL для поиска в довольно большой базе данных, а для просмотра страниц использую listview и datapager. Мне известны методы Skip () и Take (), и они работают правильно. Однако я не могу использовать счетчик результатов для пейджера данных, поскольку они всегда будут иметь размер страницы, определенный в методе Take ().

Например:

var result = (from c in db.Customers
              where c.FirstName == "JimBob"
              select c).Skip(0).Take(10);

Этот запрос всегда будет возвращать 10 или менее результатов, даже если есть 1000 JimBobs. В результате DataPager всегда думает, что есть одна страница, и пользователи не могут перемещаться по всему набору результатов.

Как я могу обмануть хранилище данных, чтобы отображать количество страниц на 1000, но связывать 10 элементов одновременно? Я не хочу использовать объектный источник данных.

Спасибо.

Ответы [ 2 ]

1 голос
/ 08 апреля 2011

Выполнить второй запрос:

var count = Customers.Where(c => c.FirstName == "JimBob").Count();
0 голосов
/ 23 июня 2011

попробуйте использовать это ..

    var result = (from c in db.Customers
          where c.FirstName == "JimBob"
          select c).Skip((PAGENUMBER-1 * 10)).Take(10);

посмотрите пост блога здесь на простом LINQ Paging

Надеюсь, это поможет ..:)

...