Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Espero que esse assunto não aborreça os moderadores (risos).
Caso:
Bom, veja essa paginação que montei, utilizei algumas partes de outras paginações que inclusive peguei aqui no fórum.
Visuamente fica assim:
‹ primeira « anterior 1 2 3 próxima » última ›
Sendo que os links: ‹ primeira, « anterior, próxima » e última › ficam desativados quando não há mais registros para exibir.
Ela funcionou legal até certo ponto.
Quando coloquei para exibir 2 registros por página de um grupo de 22 registros, gerou 12 páginas, ou seja, ele entendeu ter 24 registros.
Dúvida:
Ao clicar no link "última" que me leva à última página, exibe a mensagem "Nenhum Registro Encontrado" .
O correto seria gerar 11 páginas de 2 registros em cada.
Porque está gerando 12 páginas de 22 registros, sendo 2 por página?
Segue o código:
<style>
.centraliza{text-align:center;}
.n_cinza_14{font: 14px "Trebuchet MS", Tahoma, Arial; color:#666;font-weight:bold;}
.link_pag_selecionado {font: 13px "Trebuchet MS", Tahoma, Arial;font-weight: bold;color: #00f;text-decoration:none; background:#fff url('../imagens/seta_paginacao.gif') 5px 5px no-repeat; padding:8px 5px 0 5px;}
.link_n_preto_11 a:link {font: 13px "Trebuchet MS", Tahoma, Arial;font-weight: bold;color: #00f;text-decoration:none;}
.link_n_preto_11 a:visited {font: 13px "Trebuchet MS", Tahoma, Arial;font-weight: bold;color: #00f;text-decoration:none;}
.link_n_preto_11 a:hover {font: 13px "Trebuchet MS", Tahoma, Arial;font-weight: bold;color: #f60;text-decoration:underline;}
</style>
<div id="conteudo">
<%
id_not = numerico(limpa_var(request.QueryString("id_not")))
%>
<div class="titulo_texto">Notícias</div>
<%
'numero de registros por pagina...
pageSize = 5
if(len(Request.QueryString("pagina")) = 0 )then
paginaAtual = 1
else
paginaAtual = CInt(Request.QueryString("pagina"))
end if
' conta o numero de registros...
strSQL = "SELECT COUNT(*) AS total FROM tbl_noticias where status_not = 1"
set rs = conexao.execute(strSQL)
'total de registros
recordCount = Cint(rs("total"))
'calculamos o numero de paginas...
pageCount = (recordCount / pageSize)
If pageCount < 1 then
pageCount = 1
end if
rs.Close()
Flag1 = INT(paginaAtual / pagesize)
PI = INT(Flag1 * pagesize)
IF PI = 0 THEN
PI = 1
END IF
PF = PI + pagesize - 1
strSQL = "SELECT id_not, titulo_not FROM tbl_noticias where status_not = 1 ORDER BY id_not DESC LIMIT " & (paginaAtual - 1) * pageSize & " , " & pageSize
rs.Open strSQL, conexao
set rs = conexao.execute(strSQL)
if rs.BOF and rs.EOF then
Response.Write "<br><br><br><br><center>Nenhum Registro Encontrado</center>"
else
%>
<div>
<%
do while not rs.eof
titulo_not = rs("titulo_not")
%>
<div id="lista_meio">
<div class="link_n_azul_11"><a title="<%=titulo_not%>" href="noticias.asp?id_not=<%=rs("id_not")%>&pagina=<%=paginaAtual%>">» <%=titulo_not%></a></div>
</div>
<%
rs.MoveNext()
loop
%>
<%
TotPag = cInt(pageCount+1)
if cInt(pageCount) > 1 then
Response.Write "<div class='centraliza link_n_preto_11'>"
Response.Write "<hr />"
Response.Write "<div class='n_preto_11'>Páginas:</div><br />"
strLinkPaginacao = request.ServerVariables("SCRIPT_NAME")+"?id_not="&id_not&"&"
'Links desativados
if Cint(paginaAtual) = 1 then Links = Links & "<span class='n_cinza_14'>‹ primeira</a></span> "
if Cint(paginaAtual) = 1 then Links = Links & "<span class='n_cinza_14'>« anterior</span> "if Cint(paginaAtual) > 1 then Links = Links & "<a href='" & strLinkPaginacao & "pagina=1'>‹ primeira</a> "
if Cint(paginaAtual) > 1 then Links = Links & "<a href='" & strLinkPaginacao & "pagina=" & paginaAtual-1 & "'>« anterior</a> "if (paginaAtual+2) <= TotPag then
for I = paginaAtual+1 TO INT(paginaAtual+2)
Links = Links & "<a href='" & strLinkPaginacao & "pagina=" & I & "'> " & I & "</a> "
next
end if
'Links ativados
if Cint(paginaAtual) < TotPag then Links = Links & "<a href='" & strLinkPaginacao & "pagina=" & paginaAtual+1 & "'> próxima »</a> "
if Cint(paginaAtual) < TotPag then Links = Links & "<a href='" & strLinkPaginacao & "pagina=" & TotPag & "'>última ›</a>"if Cint(paginaAtual) = TotPag then Links = Links & "<span class='n_cinza_14'>próxima »</span></a> "
if Cint(paginaAtual) = TotPag then Links = Links & "<span class='n_cinza_14'>última ›</span></a> "
Response.Write"" & Links &""
Response.Write"</div>"
end if
Response.Write"</div>"
end if
Fechars(rs)
%>
</div>
Carregando comentários...