Существует проблема, о которой вам нужно знать ... встроенный набор записей ASP позволяет выполнять разбиение на страницы, однако он не очень эффективен. Весь набор результатов возвращается в браузер, затем он находит соответствующую страницу и отображает эти данные.
Думайте об этом так ... ваш набор результатов представляет собой книжный шкаф с 4 полками. Когда вы запрашиваете страницу 1, возвращаются все 4 полки с книгами. Код на дисплее говорит: «Хорошо, теперь показывай только страницу 1». Если вы затем попросите страницу два ... Все четыре полки с книгами будут возвращены, а затем на дисплее появится надпись «Хорошо, дайте мне страницу 4».
Итак, вы должны искать решение для пейджинга, которое происходит на сервере, внутри базы данных. Таким образом, если вы запросите страницу 15 из 50-страничного результата, база данных вернет только одну полку книг.
Этот запрос Google должен поставить вас на правильный путь.
Редактировать: Как работает пейджинг SQL
- Вы должны использовать хранимую процедуру
- Одним из входных параметров является страница для просмотра
- Хранимая процедура фильтрует результаты на сервере
Вот основная концепция того, что происходит внутри процедуры:
Шаг 1:
Создайте временную таблицу, в которой будет храниться весь набор результатов. Я предпочитаю хранить только два значения в этой временной таблице. Идентификационное начальное значение с именем RowId и первичный ключ данных результата. (Я один из тех, кто верит в бессмысленные ключи семени идентичности)
Шаг 2:
Вставьте все значения PKey из оператора select в временную таблицу
Шаг 3:
Определите StartRowId и EndRowId на основе параметра входной страницы.
Шаг 4:
Выберите из временной таблицы, используя внутреннее соединение с таблицей данных на PKey. В предложении where ограничивают результат, поэтому RowId (из временной таблицы) находится между StartRowId и EndRowId. Обязательно заказывайте по RowId.