Ir para conteúdo
Fórum Script Brasil
  • 0

Paginação


Steven Tyler

Pergunta

galera, eu já tenho paginacao na minha pagina, ela funciona assim..

ex..

Anterior 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Proxima

está assim...mais só que vai chegar uma hora que esses numeros vao chegar a um patamar elevado, tipo 50, dai ficaria muito grande...eu gostaria simplismente de fazer um esquema igual desse site mesmo...ex.

(1) 2 3 4 5 Proxima , Anterior 1 (2) 3 4 5 Proxima, Anterior 1 2 (3) 4 5 Proxima,Anterior 2 3 (4) 5 6 Proxima,Anterior 3 4 (5) 6 7 Proxima

entenderam?

meu script esta assim...

Set rs_cliente = Server.CreateObject("adodb.recordset")
rs_cliente.pagesize = 13
rs_cliente.open sql_query,conexao,3,3

 IF Request.QueryString("pagina")="" then 
      intpagina=1 
   ELSE
      IF cint(Request.QueryString("pagina"))<1 then
         intpagina=1 
      ELSE
         IF cint(Request.QueryString("pagina"))> rs_cliente.PageCount then 
            intpagina=rs_cliente.PageCount 
         ELSE
            intpagina=Request.QueryString("pagina")
         END IF
      END IF
 END IF
rs_cliente.AbsolutePage = intpagina
IntRec=0

While IntRec < rs_cliente.PageSize and not rs_cliente.EOF
     'codigo
rs_cliente.movenext
IntRec=IntRec+1 
Wend


IF intpagina > 1 then 
<font class="texto">&nbsp;<a class="id_cha" href="clientes.asp?pagina=<%=intpagina-1%>">Anterior</a>&nbsp; 
fez_loop = "1"

vtotal = int(rs_cliente.recordcount) / rs_cliente.pagesize
if vtotal <> int(vtotal) then
vtotal =  vtotal + 1
vtotal = int(vtotal)
end if

for i = 1 to vtotal
if int(i) = int(intpagina) then
%>
<font class="texto">[<a class="id_cha" href="clientes.asp?pagina=<%=i%>"><b><%=i%></b></a>] 
<%else%>
<font class="texto"><a class="id_cha" href="clientes.asp?pagina=<%=i%>"><%=i%></a> 
<%end if%>
<%next
END IF


'PAGINACAO
'Se não estivermos no último registro contado, então é mostrado o link p/ a próxima página 
IF strcomp(intpagina,rs_cliente.PageCount) <> 0 then 

if fez_loop <> "1" then
vtotal = int(rs_cliente.recordcount) / rs_cliente.pagesize
if vtotal <> int(vtotal) then
vtotal =  vtotal + 1
vtotal = int(vtotal)
end if

for i = 1 to vtotal

if int(i) = int(intpagina) then
%>
 <font class="texto">[<a class="id_cha" href="clientes.asp?pagina=<%=i%>"><b><%=i%></b></a>] 
<%else%>
  <font class="texto"><a class="id_cha" href="clientes.asp?pagina=<%=i%>"><%=i%></a> 
 <%end if%>
<%next
end if
%> 
   &nbsp;<font class="texto"><a class="id_cha" href="clientes.asp?pagina=<%=intpagina + 1%>">Próxima</a> 
<% 
END IF

lógico que vao coisas antes, e depois, mais no que postei vai o principal....reparem que ele faz um loop no total de paginas, e dai aparece o n° das paginas, nem que seja 100 páginas, eu so gostaria de ter um numero, e este numero ser o n° de n° de páginas que aparecerao na tela, e aquele esquema de fila la de ir mudando de acordo com o que o usuario digita..

alguém pode me ajudar se n for complicar?

abracos

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Montei um exemplo simples com comentarios pra você entender. Eu testei aqui e funcionou, se aparecer algum problema avisa aí, é só adaptar:

<%
total = 10 'aqui muda-se para o recordcount
total = int(total)
pagina = request("pagina")

'se for a primeira visita, então não terá a variavel "pagina" na URL
if pagina = "" then
    pagina = 1
end if

'determina o intervalo a ser exibido, 2 paginas antes até duas paginas a mais da atual
inicial = pagina - 2
final = pagina + 2

'certifica que não aparecerá um valor negativo
If inicial < 1 Then 
inicial = 1
End If

'certifica que não aparecerá um valor maior do que o total de paginas
If final > total Then
final = total
End If

'quando estiver na primeira pagina, determina que será até o 5 registro
if inicial = 1 then
    final = 5
end if

'quando estiver na ultima pagina, determina que irá do ultimo até -5 registros
if final = total then
    inicial = total - 5
end if


For i = inicial To final

If i = CInt(pagina) Then
Response.Write i & " "
Else
Response.Write "<a href=teste.asp?pagina="&i&">"&i&"</a> "
End If
Next

%>

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...