Jump to content


Photo

Paginação - Esse é Só Pra Quem é Bom Mesmo!


  • Faça o login para participar
1 reply to this topic

#1 Mauro_Avila

Mauro_Avila

    Novato no fórum

  • Usuários
  • 3 posts
  • Sexo:Não informado

Posted 23/04/2004, 08:55

Estou com um problema na paginação...

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>&nbsp;</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&ccedil;&atilde;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>&nbsp;</p>
                 </div>
               </td>
             </tr>
           </table>
         </td>
         <td width="17%" height="116" bgcolor="#FFFFFF" valign="top"> 

         </td>
       </tr>
     </table>
   </td>
 </tr>
</table>
</body>
</html>



Obrigado!

#2 yakko

yakko

    Turista

  • Usuários
  • 37 posts
  • Sexo:Não informado

Posted 23/04/2004, 12:03

seguinte velinhu ve se isto aqui vai te ajudar.

<%
' imprime os registros na tela
for i = 0 to TAMANHO_POR_PAGINA
%>
<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
if (tabela.eof) then exit for
next
%>
[]´s

yakko




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq