USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  ASP - Active Server Page
Voltar
Autor Assunto:  Adaptar paginação....?
vilmarbr
Pontos: 2843
SAO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 02/08/2004 18:15 hs         

/*
Oi,
Adaptar paginação....?
Alguém sabe como eu adapto a paginação abaixo p/ exibir apenas de 15 em 15 itens no rodapé de nºs das páginas?
Pois no meu caso ficam muitos nºs aparecendo assim:
[<< Anterior] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 [Próxima >>]

Gostaria que mostrasse assim:
[<< Anterior] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ... [Próxima >>]
Depois os próximo 15:
[<< Anterior] ... 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ... [Próxima >>]
E assim por diante

Veja a minha codificação atual:
<html>
<head>
<title>Exemplo de P&aacute;gina&ccedil;&atilde;o - asp101.com</title>
</head>
<!-- #include file="adovbs.inc" -->
<!-- #include file="conn_dbAT.asp" -->
<%
'Variáveis de páginação
Dim iPageSize       'Define quão grande será cada página
Dim iPageCount      'O nº de páginas para se movimentar pelo recordset
Dim iPageCurrent    'A página corrente(atual)
Dim strSQL          'String SQL a ser executada
Dim Rs     'Objeto de recordset
Dim iRecordsShown   'Controlador de loop p/ mostrar exatamente os registros de cada tamanho de página(iPageSize)
Dim I               'Usada no loop dos laços for
Dim Mostrado        'Registro mostrado na tela

'»»Parâmetros passados para paginação
iPageSize = 10 'Aqui pode-se aumentar ou diminuir o nº de registros por página.

'Recupera página p/ apresentar ou seta como default 1 a página atual
If Request.QueryString("page") = "" Then
 iPageCurrent = 1
Else
 iPageCurrent = CInt(Request.QueryString("page"))
End If
'»»Parâmetros passados para paginação

codempr = 3
dt_inicialAT = "1/1/03"
dt_finalAT = date
AtSolucionadoAt = "T"
Button = "="

if AtSolucionadoAt = "T" then
 Button = "<>"
end if
'SE FOREM USADOS PARÂMETROS NA CONSULTA SQL, SERÁ PRECISO PASSÁ-LOS NA URL
strSQL = "Select ATCod,AtDtAtend,AtHrAtend,AtContato,AtServico,AtSolucionado,AtSolicitacao,AtDescr,AtSolucao,AtAtendente from HT_AU_DAtend WHERE AtCod = '" & codempr & "' AND ATSolucionado " & Button & " '" & AtSolucionadoAT & "' AND AtDtAtend > '" & dt_inicialAT & "' AND AtDtAtend < '" &dt_finalAT & "' ORDER BY AtDtAtend"

'Response.Write "<b>strSQL</b>:<br>" &  strSQL & "<BR>"
'Response.End()

' é preciso declarar o recordset dessa forma qdo. usa-se RS.Open
Set Rs = Server.CreateObject("adodb.recordset")

Rs.CursorLocation = adUseClient
Rs.CursorType = adOpenForwardOnly  'tipo do cursor
Rs.LockType = adLockOptimistic  'tipo de bloqueio do cursor
Rs.CacheSize = iPageSize
Rs.PageSize = iPageSize

'abre-se o recordset desta forma qdo. precisa de usar seus vários métodos e propridades
Rs.open strSQL, Conexao

'Contador de páginas
iPageCount = Rs.PageCount

'Se houver mais páginas a serem exibidas, a pág. corrente será = ao contador de pág.
If iPageCurrent > iPageCount Then iPageCurrent = iPageCount
'Se não houver mais páginas a serem exibidas, a página corrente será 1
If iPageCurrent < 1 Then iPageCurrent = 1

'Verifique a contagem da página para impedir bombardear quando os resultados zero são retornados!
If iPageCount > 0 Then
 ' Move para página selecionada.
 Rs.AbsolutePage = iPageCurrent
'Inicia saída com uma Página X de N linha
%>
 <p>
 <font size="3">Página <strong><%= iPageCurrent %></strong>
 de <strong><%= iPageCount %></strong></font>
 </p>
<%
 'Loop através dos registros e saída 1 linha por registro
 iRecordsShown = 0
 Do While iRecordsShown < iPageSize And Not Rs.EOF
  Mostrado = Rs("AtContato") & ""
  Mostrado = Replace(Mostrado,Chr(0),"")
  Response.Write "<b>Nome:</b>&nbsp;" & Mostrado & "<br>"
  ' Incrementa o nº de registros apresentados
  iRecordsShown = iRecordsShown + 1
  'Não esquecer de mover p/ próximo registro!
  Rs.MoveNext
 Loop
End If
Response.Write "<br><br>"

'Mostra links anterior, nºs de página e próxima
If iPageCurrent > 1 Then
'SE FOREM USADOS PARÂMETROS NA CONSULTA SQL, SERÁ PRECISO PASSÁ-LOS NA URL
'pegá-los depois com Request.QueryString("variável passada")
'ASSIM:
'obs.: FOI TROCADO O (%) POR (#) NO EXEMPLO P/ NÃO ESTRAGAR OS COMENTÁRIOS
'db_paging.asp?page=<#= iPageCurrent - 1 #>&txtCodEmp=<#=CodEmpr#>&Atsolucionado=<#=AtsolucionadoAT#>
'Mostra link p/ pág. anterior
 %>
 <a href="db_paging.asp?page=<%= iPageCurrent - 1 %>">[&lt;&lt; Anterior]</a>
 <%
End If

'Apresenta nº de páginas
For I = 1 To iPageCount
'Só montará link c/ o Nº da pág. se não for a pág. corrente
 If I = iPageCurrent Then
  %>
  <%= I %>
  <%
 Else
  %>
  <a href="db_paging.asp?page=<%= I %>"><%= I %></a>
  <%
 End If
Next
'Mostra link p/ pág. posterior
If iPageCurrent < iPageCount Then
 %>
 <a href="db_paging.asp?page=<%= iPageCurrent + 1 %>">[Próxima &gt;&gt;]</a>
 <%
End If
%>
</html>

-----------------------------
Grato,
*/


http://www.vilmarbro.com.br
TÓPICO EDITADO
 
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página