|
|
|

|

|
Dicas
|

|
ASP - Active Server Page (Miscelâneas)
|
|
 |
Título da Dica: Exemplo de paginação simples e funcional. Totalmente comentado!
|
 |
|
|
Postada em 11/10/2004 por vilmarbr
<!-- Abaixo segue exemplo de paginação simples e funcional. Totalmente comentado! É só vc. adaptar a conexão ao banco de dados, mudar tabela do BD acessada e os seus respectivos campos. Depois liste na tela como quiser! Troque o nome exemp_paginacao.asp na paginação pelo nome futuro da sua página.
Vilmar Brazão de Oliveira --> <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> <% Option Explicit 'força declaração de variável, TEM QUE SER A 1ª DECLARAÇÃO APÓS A DIRETIVA @LANGUAGE....... Response.Expires = -1 'evita cache no servidor, mostra a versão mais atual da página. %> <html> <head> <title>Exemplo de Páginação</title> </head> <!--#include file="includes/adovbs.inc" --> <!--#include file="conn_dbAT.asp" --> <body> <% '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("PaginaMostrada") = "" Then iPageCurrent = 1 Else iPageCurrent = CInt(Request.QueryString("PaginaMostrada")) End If '»»Parâmetros passados para paginação
'SE FOREM USADOS PARÂMETROS NA CONSULTA SQL, SERÁ PRECISO PASSÁ-LOS NA URL strSQL = "Select AtContato from HT_DBAU001_DAtend WHERE AtCod = 5000 ORDER BY AtDtAtend" 'Response.Write "strSQL:<br>" & strSQL & "<BR>" 'Response.End()
Set Rs = Server.CreateObject("adodb.recordset") '»»É preciso declarar o recordset dessa forma qdo. usa-se RS.Open Rs.CursorLocation = adUseClient Rs.CursorType = adOpenForwardOnly 'tipo do cursor Rs.LockType = adLockOptimistic 'tipo de bloqueio do cursor Rs.CacheSize = iPageSize Rs.PageSize = iPageSize Rs.Open strSQL,Conexao '»»Abre-se o recordset desta forma qdo. precisa de usar seus vários métodos e propridades
'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 "Nome: " & Mostrado & "<br>"
iRecordsShown = iRecordsShown + 1 '»»Incrementa o nº de registros apresentados Rs.MoveNext '»»Não esquecer de mover p/ próximo registro! Loop End If Response.Write "<br><br>"
'»»INÍCIO: Mostrar links anterior e próxima e nºs de página. If iPageCurrent > 1 Then '»»Mostra link p/ pág. anterior. %> <a href="exemp_paginacao.asp?PaginaMostrada=<%= iPageCurrent - 1 %>">[<< Anterior]</a> <% End If
'»»INÍCIO: Apresentar 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 Response.Write "<strong>" & I & "</strong>" Else %> <a href="exemp_paginacao.asp?PaginaMostrada=<%=I%>"><%=I%></a> <% End If Next '»»FIM: Apresentar nº de páginas.
If iPageCurrent < iPageCount Then '»»Mostra link p/ pág. posterior. %> <a href="exemp_paginacao.asp?PaginaMostrada=<%=iPageCurrent + 1%>">[Próxima >>]</a> <% End If '»»FIM: Mostrar links anterior e próxima e nºs de página. %> </body> </html>
|
|
|
|

|