Jump to content
Fórum Script Brasil
  • 0

Paginação


AlexCT

Question

2 answers to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...