Нумерация страниц в классическом ASP с VB Script - PullRequest
0 голосов
/ 17 ноября 2011

Я использую ASP / VB Script в своем проекте, но я не очень разбираюсь в Pagination в Classic ASPЯ разработал формат сетки данных, используя таблицы и циклы.Эта таблица заполняется путем доступа к базе данных.Поскольку у нас есть огромное количество данных для отображения, нам нужно разбить на страницы.

Ответы [ 3 ]

1 голос
/ 17 ноября 2011

Проблема разбиения на страницы не является неотъемлемой частью ASP classic или VBScript.Сначала необходимо определить, какой стратегии следовать:

В клиенте:

  1. Пагинация в стиле Ajax (Вы можете использовать плагин jQuery, например SlickGrid )
  2. Связанное разбиение на страницы: на вашей странице есть ссылки на страницу 1, страницу 2 и т. Д.
  3. Бесконечная прокрутка: это современный способ разбиения на страницы, с большим количеством результатов, добавляемых на страницу через ajax

На сервере

  1. Полные результаты БД получают и возвращают только запрашиваемую страницу.Иногда это необходимо.
  2. Полное извлечение БД, но кэширование результата, поэтому последующий запрос страницы поступает из кеша, а не из БД
  3. Задавать БД только запрашиваемую страницу (Различные методы в зависимости от БДдвигатель)
1 голос
/ 17 ноября 2011

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

Думайте об этом так ... ваш набор результатов представляет собой книжный шкаф с 4 полками. Когда вы запрашиваете страницу 1, возвращаются все 4 полки с книгами. Код на дисплее говорит: «Хорошо, теперь показывай только страницу 1». Если вы затем попросите страницу два ... Все четыре полки с книгами будут возвращены, а затем на дисплее появится надпись «Хорошо, дайте мне страницу 4».

Итак, вы должны искать решение для пейджинга, которое происходит на сервере, внутри базы данных. Таким образом, если вы запросите страницу 15 из 50-страничного результата, база данных вернет только одну полку книг.

Этот запрос Google должен поставить вас на правильный путь.

Редактировать: Как работает пейджинг SQL

  1. Вы должны использовать хранимую процедуру
  2. Одним из входных параметров является страница для просмотра
  3. Хранимая процедура фильтрует результаты на сервере

Вот основная концепция того, что происходит внутри процедуры:

Шаг 1:
Создайте временную таблицу, в которой будет храниться весь набор результатов. Я предпочитаю хранить только два значения в этой временной таблице. Идентификационное начальное значение с именем RowId и первичный ключ данных результата. (Я один из тех, кто верит в бессмысленные ключи семени идентичности)

Шаг 2:
Вставьте все значения PKey из оператора select в временную таблицу

Шаг 3:
Определите StartRowId и EndRowId на основе параметра входной страницы.

Шаг 4:
Выберите из временной таблицы, используя внутреннее соединение с таблицей данных на PKey. В предложении where ограничивают результат, поэтому RowId (из временной таблицы) находится между StartRowId и EndRowId. Обязательно заказывайте по RowId.

0 голосов
/ 17 ноября 2011

Установить размер страницы

recordset.PageSize = 100 ' number of records per page

Установить текущую страницу

recordset.AbsolutePage = nPage ' nPage being the page you want to jump to.

Другие полезные биты:

recordset.RecordCount ' number of records returned
recordset.PageCount ' number of pages based on PageSize and RecordCount

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

...