Эффективный пейджинг с Repeater, SQL Server и пользовательским пейджером - PullRequest
2 голосов
/ 16 декабря 2011

Я только что загрузил следующую статью в codeproject:

http://www.codeproject.com/KB/webforms/efficientpagingrepeater.aspx

В основном он использует Repeater, SQL Server с оператором ROW_NUMBER () OVER и пользовательский пейджер.

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

Ответы [ 2 ]

1 голос
/ 16 декабря 2011

CP еще не опубликовал статью, поэтому я не могу комментировать это.Я могу сказать, что почти в каждом инструменте DAL (EF, NH, AR, Massive, Dapper.Net, Simple.Data) все встроены в пейджинг. Поэтому подключение пейджинга к повторителю не должно быть проблемой вообще.

Если в статье говорится о серверном элементе управления веб-формами, на котором размещаются данные, я бы избегал этого любой ценой.доступ к данным не должен управляться компонентами пользовательского интерфейса.и используя любой из различных DAL, перечисленных выше, очень просто получить доступ к базе данных с помощью кода вместо элементов управления drag-n-drop.

, чтобы получить постраничное разбиение на db, вам нужно 3 входа и 2 выхода

  1. SQL-запрос и параметры
  2. начальная точка (индекс страницы или страницы)
  3. макс. Количество записей (размер страницы)

выходные данные

  1. текущая страница результатов
  2. общее количество записей

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

var pages = total records / page size + (total records % page size > 0 ? 1 : 0);

со страницей результатов, текущей страницей и общим количеством страниц, которые вы можете построить макет интерфейса

0 голосов
/ 20 августа 2012

Я надеюсь, что это решит ваш вопрос:

http://derekreynolds.wordpress.com/2012/07/05/how-to-use-pageddatasource-to-paginate-repeater/

...