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

Paginação


AlexCT

Pergunta

2 respostass a esta questão

Posts Recomendados

  • 0
Guest OTIMO SCRIPT

Já que ninguém postou uma resposta para mim

Eu editei este post para colocar como eu consegui fazer

tem dois Tipos

Paginação 01

a paginação que deixa sempre a pagina atual centralizada

primeira Anterior 1 2 3 4 [ 5 ] 6 7 8 9 10 Proxima ultima

primeira Anterior 21 22 23 24 [ 25 ] 26 27 28 29 Proxima ultima

---------------------------------------

Paginação 02

Que não fica centralizado , deixando como esta mesmo clicando nas paginas

primeira Anterior ... 1 [ 2 ] 3 4 5 6 7 8 9 10 ... Proxima ultima

primeira Anterior ... 1 2 [ 3 ] 4 5 6 7 8 9 10 ... Proxima ultima

e ao clicar nos 3 pontinhos

primeira Anterior ... [ 11 ] 12 13 14 15 16 17 18 19 20 ... Proxima ultima

Postei a paginação completa, Esta funcionando perfeirtamente.

Pois estou usando.

<%
PagAtual = Request.QueryString("PagAtual") 'página atual

Set Conn= server.createobject("adodb.connection")
DSNtest = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("db.mdb")
Conn.Open DSNtest


Set RS= Server.CreateObject("ADODB.Recordset") 'acrescentei por causa da paginação
SQL = "SELECT * FROM jogos WHERE  permissao='0'  ORDER BY id ASC"

RS.Open SQL, conn, 3


'############## paginacao Introdução  #################

'------- Coloque aqui a quantidade de registros que você deseja por página --------

Const NumPorPage = 20

'Verifica qual a página solicitada
    Dim PagAtual

    IF Request.QueryString("PagAtual") = "" Then
                PagAtual = 1 'Primeira página
          Else
                 PagAtual = Request.QueryString("PagAtual")
    End If

    'Cria conexão com o Banco de Dados, já abrir anteriormente
    'Criado anteriormente Set RS = Server.CreateObject("ADODB.Recordset")
    '>>> FIZ EM CIMA RS.CursorLocation = 3        Acerta a posição do cursor . 3 ou adUseClient
   
    RS.CacheSize = NumPorPage 'Define o tamanho do Cache = para o número de registros

    'Cria a String SQL
    '>>> FIZ EM CIMA Dim SQLpag
    '>>> FIZ EM CIMA SQLpag = "SELECT * FROM jogos"
    '>>> FIZ EM CIMA RS.Open SQLpag, Conn    Abre o RecordSet


     RS.MoveFirst                'Move o RecorSet para o início 
     RS.PageSize = NumPorPage    'Coloca a quantidade de páginas

     Dim TotalPages              'Pega o número total de páginas
     TotalPages = RS.PageCount

     RS.AbsolutePage = PagAtual  'Configura a página atual

'############## paginacao Introdução  - FIM #################


Count = 0       'Zera o contador
    
'Inicia a Função DO, utilizando a quantidade de páginas especificadas
'Ou seja ele irá executar a ação até que o valor Count seja menor que "20" como está no nosso exemplo
  
i = 0 

DO WHILE NOT RS.EOF And Count < RS.PageSize  'paginacao And Count < RS.PageSize 

' ----- linhas coloridas -------
if i mod 2<>0 then
cor = "#F4F4F4"
else
cor = "#e1e1e1"
end if 
'-------------------------------

%> 
[b]CONTEUDO HTML[/b]
<%
     i = i+1
  Count = Count + 1   'paginacao
     RS.MoveNext
     LOOP                'tb paginacao

%>
PAGINAÇÃO 01

<%
'################## paginacao 01 #####################

  'Coloca o Nº página atual / Nº Total de páginas

  Response.Write("<B><font color=""#006600"" size=""2"" face=""Arial""><strong> Página " & PagAtual & " de " & TotalPages & " </strong></font></B> - ")   

'Mostra os botões: Anterior e Próxima, utilizando da opção de IF 

IF PagAtual > 1 THEN 

'Se for a primeira página, Mostra apenas o botão Próximo e Ultima
       Response.Write("<B><font color=""#660066"" size=""1"" face=""Arial"">") 
       Response.Write("<a href='jogos.asp?PagAtual=" &  1 & "'>")
       Response.Write("Primeira") 
       Response.Write("</a></font></B>  ")
       
       Response.Write("<B><font color=""#660066"" size=""2"" face=""Arial"">") 
       Response.Write("<a href='jogos.asp?PagAtual=" & PagAtual - 1 & "'>")
       Response.Write("Anterior") 
       Response.Write("</a></font></B>  ")

      Response.Write("<B><font color=""#660066"" size=""2"" face=""Arial"">") 
       Response.Write("<a href='jogos.asp?PagAtual=" & PagAtual - 1 & "'>")
       Response.Write("Anterior") 
       Response.Write("</a></font></B>  ")


   Else

       Response.Write("<B><font color=""#EEEEEE"" size=""1"" face=""Arial"">") 
       Response.Write("Primeira") 
       Response.Write("</font></B>  ")

       Response.Write("<B><font color=""#CCCCCC"" size=""2"" face=""Arial"">") 
       Response.Write("Anterior") 
       Response.Write("</font></B>  ")


End If

'------------------- numero -------------------------
'---------- Numero de numeros para ser mostrados ----
    max_n_mostrados = 9

intervalo = Int(max_n_mostrados /2)
inicio = PagAtual - intervalo
final = PagAtual + intervalo

If CInt(inicio) <1 Then 
  inicio = 1
  final = 10
END IF
If CInt(final) > CInt(TotalPages) Then final = TotalPages

For i = inicio To final
      If CInt(i)=CInt(PagAtual) Then
          Response.Write "<font color=""#660066"" size=""1"" face=""Arial"">[ <B>" & i & "</B> <font color=""#660066"">]</font>  "
      END IF
      If CInt(i) < CInt(PagAtual) Then
       Response.Write "<a href='jogos.asp?PagAtual=" & i & "'>" & i & "</a>  "
      END IF
      If CInt(i) > CInt(PagAtual) Then
          Response.Write "<a href='jogos.asp?PagAtual=" & i & "'>" & i & "</a>  "
   END IF
Next

'------------------------------------------------------

IF CInt(PagAtual) <> CInt(TotalPages) THEN 

'Se estiver na última página, mostra apenas o botão Anterior e Primeira

       Response.Write("<B><font color=""#660066"" size=""2"" face=""Arial"">")
       Response.Write("<a href='jogos.asp?PagAtual=" & PagAtual + 1 & "'>")
       Response.Write("Próxima")
       Response.Write("</a></font></B>  ") 

       Response.Write("<B><font color=""#660066"" size=""1"" face=""Arial"">")
       Response.Write("<a href='jogos.asp?PagAtual=" & TotalPages & "'>")
       Response.Write("Ultima")
       Response.Write("</a></font></B>  ")        

  Else
       Response.Write("<B><font color=""#CCCCCC"" size=""2"" face=""Arial"">")
       Response.Write("Próxima") 
       Response.Write("</font></B>  ")

       Response.Write("<B><font color=""#EEEEEE"" size=""1"" face=""Arial"">")
       Response.Write("Ultima") 
       Response.Write("</font></B>  ")
End If 
'################## fim paginacao 01 ########################
PAGINAÇÃO 02
'################## paginacao 02 #############################

  'Coloca o Nº página atual / Nº Total de páginas

  Response.Write("<B><font color=""#006600"" size=""2"" face=""Arial""><strong> Página " & PagAtual & " de " & TotalPages & " </strong></font></B> - ")   

'Mostra os botões: Anterior e Próximo, utilizando da opção de IF 

'----------- Numeros - Calculos ---------------------------------------------

var01 = Len(PagAtual) 'Lê o tamanho do numero
var02 = var01 - 1 'subtrai um da variavel , retirando o digito menos sig.
var03 = Left(PagAtual,var02) 'obtem os digitos mais  sig. do numero
var04 = Right(PagAtual,1)    'obtem o digito menos sig. do numero
var05 = var03 & 0 ' Acrecenta ZERO no final
IF var04 <> 0 THEN    	' condição se o digito menos sig. é Zero
	inicial = var05 + 1
	final = inicial + 9  
	ELSE
	inicial = var05 - 9  
	final = var05
END IF

indice_i = var04 - 1 'ultimo digito  - 1
indice_f = 10 - var04 ' 10 - digito menos sig.


' If CInt(inicial) < 1 Then inicial = 1
      
If CInt(final) > CInt(TotalPages) Then final = TotalPages

'------------------------------------------------------------------------------


IF PagAtual > 1 THEN 

'Se for a primeira página, Mostra apenas o botão Próximo e Ultima
       Response.Write("<B><font color=""#660066"" size=""1"" face=""Arial"">") 
       Response.Write("<a href='jogos.asp?PagAtual=" &  1 & "'>")
       Response.Write("Primeira") 
       Response.Write("</a></font></B>  ")
       
       Response.Write("<B><font color=""#660066"" size=""2"" face=""Arial"">") 
       Response.Write("<a href='jogos.asp?PagAtual=" & PagAtual - 1 & "'>")
       Response.Write("Anterior") 
       Response.Write("</a></font></B>  ")

       IF PagAtual > 10 THEN

        Response.Write("<B><font color=""#660066"" size=""2"" face=""Arial"">") 
        Response.Write("<a href='jogos.asp?PagAtual=" & inicial - 1 & "'>")
        Response.Write("...") 
      Response.Write("</a></font></B>  ")

           ELSE

      	Response.Write("<B><font color=""#CCCCCC"" size=""2"" face=""Arial"">") 
        Response.Write("....") 
        Response.Write("</font></B>  ")

     END IF

   Else

       Response.Write("<B><font color=""#EEEEEE"" size=""1"" face=""Arial"">") 
       Response.Write("Primeira") 
       Response.Write("</font></B>  ")

       Response.Write("<B><font color=""#CCCCCC"" size=""2"" face=""Arial"">") 
       Response.Write("Anterior") 
       Response.Write("</font></B>  ")

       Response.Write("<B><font color=""#CCCCCC"" size=""2"" face=""Arial"">") 
       Response.Write("...") 
       Response.Write("</font></B>  ")

End If

'---------------------- NUMEROS  ---------------------------

For i = inicial To final
      If CInt(i)=CInt(PagAtual) Then
          Response.Write "<font color=""#660066"" size=""1"" face=""Arial"">[ <B>" & i & "</B> <font color=""#660066"">]</font>  "
      END IF
      If CInt(i) < CInt(PagAtual) Then
       Response.Write "<font color=""#660066"" size=""1"" face=""Arial""><a href='jogos.asp?PagAtual=" & i & "'>" & i & "</a></font>  "
      END IF
      If CInt(i) > CInt(PagAtual) Then
          Response.Write "<font color=""#660066"" size=""1"" face=""Arial""><a href='jogos.asp?PagAtual=" & i & "'>" & i & "</a></font>  "
   END IF
Next

'------------------------------------------------------

IF CInt(PagAtual) <> CInt(TotalPages) THEN 


p1 = Left(PagAtual,var02) 
p2 = Left(TotalPages,var02)
p3 = Left(TotalPages,var02) & 0

'CONDIÇÕES
'digitos PagAtual <>  Primeiros digitos mais sig. da TotalPag 
'OU
'Ultimo numero que será mostrado  =  Primeiros digitos mais sig. da TotalPag + Zero no final
'tamanho do numero IGUAL a 1


IF (p1 <> p2) or (final = p3) or (var01 = 1) THEN  	

        Response.Write("<B><font color=""#660066"" size=""2"" face=""Arial"">")
        Response.Write("<a href='jogos.asp?PagAtual=" & final + 1 & "'>")
        Response.Write("...")
        Response.Write("</a></font></B>  ") 

          ELSE

        Response.Write("<B><font color=""#CCCCCC"" size=""2"" face=""Arial"">")
        Response.Write("...") 
        Response.Write("</font></B>  ")

    END IF

       Response.Write("<B><font color=""#660066"" size=""2"" face=""Arial"">")
       Response.Write("<a href='jogos.asp?PagAtual=" & PagAtual + 1 & "'>")
       Response.Write("Próxima")
       Response.Write("</a></font></B>  ") 

       Response.Write("<B><font color=""#660066"" size=""1"" face=""Arial"">")
       Response.Write("<a href='jogos.asp?PagAtual=" & TotalPages & "'>")
       Response.Write("Ultima")
       Response.Write("</a></font></B>  ")        

  ELSE

       Response.Write("<B><font color=""#CCCCCC"" size=""2"" face=""Arial"">")
       Response.Write("...") 
       Response.Write("</font></B>  ")

       Response.Write("<B><font color=""#CCCCCC"" size=""2"" face=""Arial"">")
       Response.Write("Próxima") 
       Response.Write("</font></B>  ")

       Response.Write("<B><font color=""#EEEEEE"" size=""1"" face=""Arial"">")
       Response.Write("Ultima") 
       Response.Write("</font></B>  ")
End If 
'################## fim paginacao 02 #######################

Rs.Close  
Set RS = Nothing
Conn.Close      
Set Conn = Nothing       
    

%> 

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,3k
    • Posts
      652,5k
×
×
  • Criar Novo...