O código abaixo apresenta os seguintes problemas:
- A paginação começa da página 0
- Imprime na tela todos os registros e quando clica no botao próximo diminui os 3 primeiros registros. Quando clica novamete diminui mais tres... e assim sucessivamente.
O certo seria imprimir de três em três e começar da página 1.
<html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <table width="770" border="0" cellspacing="0" cellpadding="0" align="center"> <tr bgcolor="#FFFFFF"> <td valign="top" height="605"> <table width="100%" border="0" cellspacing="0" cellpadding="4"> <tr> <td width="66" valign="top" height="61"><a href="index.html"><img src="boatsea.jpg" width="136" height="119" border="0"></a><br> </td> <td width="704" height="61" valign="bottom"> <div align="right"><a href="index.html"><img src="boatsea.com.br.jpg" width="250" height="18" align="bottom" border="0"></a></div> </td> </tr> </table> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td valign="top"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr bgcolor="#003399"> <td width="3%"><img src="cantoe.jpg" width="30" height="20"></td> <td width="95%"><img src="barrinhaf.jpg" width="710" height="20"></td> <td width="2%"> <div align="right"><img src="cantod.jpg" width="30" height="20"></div> </td> </tr> </table> </td> </tr> </table> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="2%" height="116" valign="top"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><img src="top.jpg" width="140" height="20"></td> </tr> </table> <p> </p> </td> <td width="81%" height="116" bgcolor="#FFFFFF" valign="top"> <table width="100%" border="0" cellspacing="8" cellpadding="0" align="center"> <tr> <td colspan="2" valign="top" height="384"> <div align="center"> <% '''''''''''''''''''''''''''''''''''''''''''''''''''''''fazendo a paginação !!! :) ' número de registros por página. Const numeroRegistros = 3 ' cria o objeto Conexão Set Conexao = Server.CreateObject("ADODB.Connection") ' concatena a string do driver com o caminho liga = "DBQ=" & Server.MapPath("db/dbclientes.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};" ' o cursor do objeto Connection deve residir no cliente. ' Isto equivale a dizer que a propriedade CursorLocation ' do objeto connection é igual a adUseClient, ou se não ' quiser utilizar as constantes do arquivo adovbs.inc, ' use o número 3 ao invés de adUseClient. Na verdade, a ' constante adUseClient tem o valor 3 no arquivo adovbs.inc. ' Logo, tanto faz usar adUseClient ou 3, pois adUseClient = 3 Conexao.CursorLocation = 3 'abre a conexão Conexao.Open liga ' cria um recordset Set tabela = Server.CreateObject("ADODB.RECORDSET") ' faz o recordset usar a conexão Set tabela.ActiveConnection = Conexao ' número de registros por página tabela.PageSize = numeroRegistros ' tamanho do cache tabela.CacheSize = numeroRegistros ' carrega a query na string strSQL = "SELECT * FROM tab_barco_motor ORDER BY tamanho,marca,descricao,estado,empresa" ' executa a query tabela.open strSQL ' testa se é a primeira vez If (request.ServerVariables("CONTENT_LENGTH") = "123" ) Then ' se for aponta para a primeira página e guarda que a página atual é a primeira tabela.AbsolutePage = 1 paginaAtual = 1 else ' caso não seja a primeira vez guarda página atual paginaAtual = Cint(Request.Form("CurrentPage")) Select Case Request.Form("enviarecordset") Case "Anterior" paginaAtual = paginaAtual - 1 tabela.AbsolutePage = paginaAtual Case "Próxima" paginaAtual = paginaAtual + 1 tabela.AbsolutePage = paginaAtual End Select ' de acordo com a escolha a página é incrementada ou decrementada End If %> <p><font size="2" face="Tahoma"><b>Barcos a Motor</b></font></p> <table width="100%" border="0" cellspacing="1" cellpadding="1"> <tr bgcolor="#003399"> <td width="13%"> <div align="center"><b><font color="#FFFFFF" size="2" face="Tahoma">Tamanho</font></b></div> </td> <td width="15%"> <div align="center"><b><font color="#FFFFFF" size="2" face="Tahoma">Marca</font></b></div> </td> <td width="38%"> <div align="center"><b><font color="#FFFFFF" size="2" face="Tahoma">Descrição</font></b></div> </td> <td width="23%"> <div align="center"><b><font color="#FFFFFF" size="2" face="Tahoma">Empresa</font></b></div> </td> <td width="11%"> <div align="center"><b><font color="#FFFFFF" size="2" face="Tahoma">Estado</font></b></div> </td> </tr> <% ' imprime os registros na tela while not tabela.EOF %> <tr bgcolor="#CCCCFF"> <td width="13%"> <div align="center"><%= tabela("tamanho")%></div> </td> <td width="15%"> <div align="center"><%= tabela("marca")%></div> </td> <td width="38%"> <div align="center"><%= tabela("descricao")%></div> </td> <td width="23%"> <div align="center"><%= tabela("empresa")%></div> </td> <td width="11%"> <div align="center"><%= tabela("estado")%></div> </td> </tr> <%tabela.MoveNext%> <%wend%> <% ' total de páginas totalPaginas = tabela.PageCount ' fecha o recordset tabela.close ' fecha a conexão Conexao.close ' destrói os objetos Set tabela = nothing Set Conexao = nothing %> </table> <br> Página <%= paginaAtual %> de <%= totalPaginas %> <% ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' %> <Form Action="<% Request.ServerVariables("SCRIPT_NAME")%>" method="POST"> <input type="hidden" name="CurrentPage" value="<%= paginaAtual %>"> <% If (paginaAtual > 1) Then %> <input type="submit" name="enviarecordset" value="Anterior"> <% End If If (paginaAtual <> totalPaginas) Then %> <input type="submit" name="enviarecordset" value="Próxima"> <% End If %> </form> <p> </p> </div> </td> </tr> </table> </td> <td width="17%" height="116" bgcolor="#FFFFFF" valign="top"> </td> </tr> </table> </td> </tr> </table> </body> </html>
Obrigado!