Как получить представление навигационной ссылки в пагинации?

0

Я изучаю, как сделать простую разбивку на страницы в html, и я думаю, что у меня что-то не хватает.
Я понял, как сделать LIMIT используя текущий номер страницы и максимальное количество строк на странице.
Также я нашел несколько руководств о том, как отображать ссылки, которые через css. Например

<ul id="mystyle">  
<li class="previous">«Previous</li>  
<li class="active">1</li>  
<li><a href="?page=2">2</a></li>  
<li><a href="?page=3">3</a></li>  
<li><a href="?page=4">4</a></li>  
<li><a href="?page=5">5</a></li>  
<li><a href="?page=6">6</a></li>  
<li><a href="?page=7">7</a></li>  
<li class="next"><a href="?page=2">Next »</a></li>  
</ul>  

Но я смущен отображением ссылок, которые пользователь нажимает для выбора среди страниц. Когда пользователь просматривает первую партию строк, он не должен видеть Previous потому что в этом нет предыдущего (я имею в виду, прежде чем страница 1 не существует).
Таким образом, для последней партии он не должен видеть Next (по крайней мере, являясь гиперссылкой), так как после последней страницы нет Next. Но я смущен тем, как это определить.
Единственный способ, о котором я могу думать, это сделать, если я делаю SELECT COUNT(*) чтобы иметь общий размер результирующего набора. Я пейджинг. Но разве это не превзойдет цель работы пейджинга. Я столкнулся с огромными результатами: SELECT COUNT(*) занимает значительное количество времени (особенно если у нас есть соединения - я имею в виду, кроме количества данных).
Мне нужна помощь в понимании того, как построить алгоритм и тонкости, которые меня смущают.

  • 0
    Я не знаю, на чем строится ваш интерфейс, но я обычно делаю такие вещи на стороне сервера.
  • 0
    @masedesign: решение на стороне сервера - это то, что я ищу в строительстве
Показать ещё 2 комментария
Теги:
pagination

1 ответ

0

Отказ от ответственности, это не видя ваш код на стороне сервера или ничего не зная о вашем приложении, но, возможно, это решение jQuery может вас завести. Опять же, это не так, как я бы с этим справился.

if ($('li.active').text() === '1') {
    $('li.previous').hide();
}

if ($('li.next').prev('li').hasClass('active')) {
    $('li.next').hide();
}

Это скроет ваши кнопки "Предыдущий/Следующий", когда это необходимо.

  • 0
    $('li.next').prev('li').hasClass('active') чем идея? Я не понимаю
  • 0
    Если последняя страница активна, то следующей страницы нет, поэтому она скрывает ссылку на следующую страницу. В вашем примере, если бы вы были на странице 7, следующая кнопка была бы скрыта.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню