Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Kinhabeu

Paginação não pára

Recommended Posts

Pessoal, tenho uma página que mostra os produtos de um banco de dados em uma tabela de 3 colunas.Estou paginando de 5 em 5 linhas, mas quando chega na última folha, ele dá erro.A paginação não pára. Alguém pode me ajudar?Segue o código

<%Function criaLink(dir, Inicio, Final)   Response.Write("<a href=")  Response.Write("base.asp?file=Ericalaticinios.asp&file2=titulos/laticinios.asp&Inicio=")  Response.Write(INicio)    Response.Write("&Final=")  Response.Write(Final)  Response.Write(">")  Response.Write(dir)  Response.Write("</a>")End FunctionInicio = Request("INicio")Final = Request.QueryString("Final")If isEmpty(Inicio) Then  Inicio = 0End IfIf isEmpty(Final) Then  Final = Inicio + 4End If cBanco = "e:\home\notabrasil\dados\banco.mdb"strConn = "Provider = Microsoft.jet.oledb.4.0; Data Source = " & cBancoSet Conn = Server.CreateObject("adodb.connection")Conn.Open(strConn)strSQL = "SELECT * FROM produtos WHERE departamento='laticinios' ORDER BY produto"Set Rs = Server.CreateObject("adodb.recordset")Set Rs = Conn.Execute(strSQL)  If Not Rs.Eof Then  vRs = Rs.GetRows  maxRegistro = UBound(vRs)    Response.Write("<table border='0' cellspacing='0' cellpading='0' align='center' width=510>")  Contador = Inicio  For I = Inicio To Final    Response.Write("<tr>")    For C = 0 to 2        Response.Write("<td align=center width=150>")    Response.Write("<p><font color=#666666 size=2 face=verdana>")    Response.Write("<img src='")        Response.Write(vRs(4,Contador))    Response.Write("' border='0'")    Response.Write(" >")    Response.Write("<br><b>")    Response.Write(vRs(1,Contador))    Response.Write("</b><br>")    Response.Write(vRs(2,Contador))    Response.Write("</p>")    Response.Write("</td>")    Response.Write("<td width=20> </td>")    Contador = Contador + 1    Next    Response.Write("</tr><tr><td colspan=6> </td></tr>")  Next  Response.Write("</table>")  Response.Write("<br>")  Response.Write("<p align=center><font size=2 face=verdana>")    If Inicio > 1 Then    Call CriaLink("Voltar", Inicio -14, Final-14)  End if  Response.Write(" :: ")  If Inicio >= 0 Then          Call CriaLink("Avançar", Inicio+14, Final+14)  End If  Response.Write("</font></p>")  Conn.Close  Set Conn = NothingElse  Response.Write("<table border='0' cellspacing='0' cellpading='0'>")  Response.Write("<tr>")  Response.Write("<td>")  Response.Write("<p>")  Response.Write("Não foi encontrado nenhum registro")  Response.Write("</p>")  Response.Write("</td>")  Response.Write("</tr>")  Response.Write("</table>")  Conn.Close  Set Conn = NothingEnd If %>

Obrigada,Erika

Compartilhar este post


Link para o post
Compartilhar em outros sites

2 coisas basicas em paginação..

- você tem q saber qtos registros tem sua consulta no total para poder saber qtas paginas vai gerar.. por exemplo... (14 registros... exibindo 5 por vez.. vai dar 3 paginas...). você está usando o GETROWS para ter esse número... e deve usar ele pra saber se vai ter mais páginas a ser exibida... algo como ver qts registros ainda faltam paaa exibir. Se tiver + q 1, mostra proximo, caso contrário naum....

 

- você naum está parametrizando sua SQL para buscar somente o q você quer q seja exibida na sua pagina.. por exemplo.. sua tabela tem 1500 registros... toda a vez q você faz a consulta, q exibe 5 em 5 na tela... ao invés dele armazenar em memória somente 5 registros por cada vez... do jeito q está fazendo você está armazenando todos os 1500 mas só exibe 5... utilizando recursos de limitação como pagesize, limit etc...

 

e o problema de naum parar de gerar..auauah

If Inicio >= 0 Then          Call CriaLink("Avançar", Inicio+14, Final+14)End If
tem q ser algo como

If Inicio >= 0 AND limite_pagina < pagina_atual Then          Call CriaLink("Avançar", Inicio+14, Final+14) End If
;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando eu troco esse codigo que você pediu o avançar da primeira página não aparece. A pagina avançar e voltar até funciona, mas quando chega no ultimo registro, o For continua e dá erro, dizendo que o registro foi deletado ou coisa parecida.

 

Se eu uso a paginação sem colocar o For para separar meus registros em 3 colunas de tabela, funciona diretinho, mas meu chefe quer em 3 colunas e quando eu uso o For dá todo esse problema.

 

Tem um teste para você visualizar o erro na página:

http://www.notabrasil.com.br/laporcela/laticinios.asp

 

Um abraço

Erika

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.