【问题标题】:How is the presentation of navigation link in pagination get build?分页中导航链接的呈现如何构建?
【发布时间】:2013-10-30 11:34:55
【问题描述】:

我正在研究如何在 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,因为此时没有previous(我的意思是在第1页之前没有previous)。
所以对于最后一批他应该看不到Next(至少是一个超链接),因为在最后一页之后没有Next。但我对如何确定这一点感到困惑。
我能想到的唯一方法是如果我做一个SELECT COUNT(*) 以便获得我正在分页的结果集的总大小。但这不会破坏分页性能的目的。我经历过大量的结果集 SELECT COUNT(*) 需要花费大量时间(特别是如果我们有连接 - 我的意思是除了数据量之外)。
我需要帮助来理解如何构建算法以及让我感到困惑的细微之处。

【问题讨论】:

  • 我不知道你的前端是在什么基础上构建的,但我通常在服务器端做这类事情。
  • @masedesign:服务器端解决方案是我正在考虑构建的
  • 如果不查看返回到前端的内容,这真的很难说。如果您的页面链接一致(仅基于页码)并且您可以将变量设置为页面总数和当前页面,则可能有一个非常简单的 JavaScript 解决方案。
  • @masedesign:为什么这取决于返回?页面是在服务器上构建的。链接的数量是固定的。例如。 10

标签: html css sql pagination


【解决方案1】:

免责声明,这是在没有看到您的服务器端代码或对您的应用程序一无所知的情况下,但潜在地,这个 jQuery 解决方案可以帮助您入门。再说一次,这不是我的处理方式。

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

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

这将在应有的时候隐藏您的上一个/下一个按钮。

【讨论】:

  • $('li.next').prev('li').hasClass('active') 这是什么意思?我不关注
  • 如果最后一页处于活动状态,则没有下一页,所以它隐藏了下一页链接。在您的示例中,如果您在第 7 页,则下一个按钮将被隐藏。
  • :这是错误的,或者我没有抓住重点。如果导航链接中的最后一个 link 处于活动状态,这并不意味着最后一页处于活动状态,因为我们可以结果集中有更多可用。所以我们使用SELECT COUNT *来解决原始问题。否则我们如何知道它何时是最后一页?
  • 这是正确的,如果您对范围超出显示范围或您并不总是显示最后一页的分页感兴趣(就像某些人选择的那样),您将不得不计算页数。
猜你喜欢
  • 1970-01-01
  • 2012-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-31
  • 2021-04-17
  • 1970-01-01
  • 2018-02-18
相关资源
最近更新 更多