Ir para conteúdo

POWERED BY:

Arquivado

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

marcelocardoso

Paginação com ERRO!

Recommended Posts

GALERA!

 

Estou com este código logo abaixo, que até então está funcionando sem nenhum problema na tela, mas acontece que ele não está funcionando com o código de paginação que peguei da internet, o qual estava completo e funcionando.

 

Pois peguei-o e o inseri neste código, e tentei ver se dava em alguma coisa... Mas acontece que ele não está paginando como deveria... Mas também não me dá nenhum erro....

 

Somente quando vou clicar nos números 1 2 3 4 avançar ele me mostra os mesmos registros, eu acho que é por causa da parte do código que fiz para exibir em colunas os produtos, pois se é só o código da paginação, ele funciona legal.....

Mas eu realmente acho que é isso, pois não entendo muito de paginação.... ok

 

Vejam meu código, e vejam se conseguem me ajudar a resolver este pequeno problema??????

Obrigado....

 

<!--#include file="incl/incl_conexao.asp" -->

<%

'## CONFIGURAÇÃO DA PAGINAÇÃO ######################################

PagAtual = Request.QueryString("posicao_da_paginacao")

MaximoPorPagina = 6

 

SQL = "SELECT * FROM Shopping_Produtos"

SET Paginacao = Server.CreateObject("ADODB.Recordset")

Paginacao.CursorType = 3

Paginacao.CacheSize = MaximoPorPagina

Paginacao.PageSize = MaximoPorPagina

Paginacao.Open SQL, Conexao

 

'## INÍCO DA PAGINAÇÃO ############################################

'Verifica qual foi a página solicitada

IF Request.QueryString("posicao_da_paginacao") = "" THEN

PagAtual = 1

ELSE

PagAtual = Request.QueryString("posicao_da_paginacao")

END IF

 

'Moveremos o ponteiro do Recordset para o ínício

Paginacao.MoveFirst

 

'Pegaremos o número total de páginas

TotalPages = Paginacao.PageCount

 

'Configuramos a página atual

Paginacao.AbsolutePage = PagAtual

 

'## FIM DA PAGINAÇÃO #############################################

%>

<!--#include file="incl/incl_conexao.asp" -->

<html>

<head>

<title><%=ObjRS("ShoppingNome")%></title>

<link href="incl/incl_fontes.css" rel="stylesheet" type="text/css">

<!--#include file="incl/incl_config-funcoes.asp" -->

</head>

<body>

<!--#include file="incl/incl_cabecalho1.asp"-->

<%

IF Paginacao.EOF THEN

%>

<table width="90%" border="0" align="center" cellpadding="4" cellspacing="4">

<tr>

<td><div align="center"><strong>Não há registros!</strong></div></td>

</tr>

</table>

<%

ELSE

%>

<table width="100%" border="0" align="center" cellpadding="2" cellspacing="2">

<tr>

<%

'Abrimos agora um laço para montarmos os registros

WHILE NOT Paginacao.EOF

%>

<td> <table width="95%" border="0" align="center" cellpadding="0" cellspacing="0" class="">

<tr>

<td width="302" height="33"> <div align="left"><strong></strong>

<table width="98%" border="0" align="center" cellpadding="0" cellspacing="6">

<tr>

<td width="50%" height="30"><div align="left" class="TEXTOMAISCULO"><strong><font color="#FF9900" size="3"><%=Paginacao("ProdutosNome")%></font></strong></div></td>

</tr>

</table>

</div></td>

</tr>

<tr>

<td></td>

</tr>

<tr>

<td><table width="98%" border="0" align="center" cellpadding="0" cellspacing="6">

<tr>

<td width="50%" height="30"><table width="100%" border="0" cellpadding="0" cellspacing="0">

<tr>

<td width="100"><strong><font face="Arial" size="1"><a href="shopping_produtos_detalhes.asp?codproduto=<%=Paginacao("ID_PRO")%>" target="_parent"><img src="<%=Paginacao("ProdutosImagem")%>" alt="Detalhes do produto" width="90" height="90" border="0" align="absmiddle"></a></font></strong></td>

<td> <table width="100%" height="90" border="0" cellpadding="0" cellspacing="0">

<tr>

<td height="51" valign="top"><font color="#CCCCCC"><%=Paginacao("ProdutosDescricao")%></font></td>

</tr>

</table></td>

</tr>

</table></td>

</tr>

</table>

<table width="98%" border="0" align="center" cellpadding="0" cellspacing="6">

<tr>

<td width="50%" height="30"><div align="center">

<table width="100%" border="0" cellspacing="2" cellpadding="0">

<tr>

<td><font color="#CC0000"><font color="#333333"><strong>DE:</strong></font><span class="TEXTOSUBLINHADO">

<%=Response.Write(FormatCurrency(Paginacao("ProdutosValorDe")))%></span></font></td>

</tr>

<tr>

<td><font color="#333333"><strong>POR:</strong></font><font color="#0066CC">

<%=Response.Write(FormatCurrency(Paginacao("ProdutosValorPara")))%></font></td>

</tr>

</table>

</div></td>

<td width="50%"><div align="center">

<table width="96%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td> <div align="left"><a href="shopping_produtos_detalhes.asp?codproduto=<%=Paginacao("ID_PRO")%>" target="_parent"><img src="img/bt_detalhes.gif" alt="Detalhes do produto" width="114" height="38" border="0"></a></div></td>

</tr>

<tr>

<td> <div align="left"><font color="#666666" size="1"><a href="carrinho.asp?codproduto=<%=Paginacao("ID_PRO")%>" target="_parent"><img src="img/bt_compra.gif" alt="Comprar produto" width="114" height="38" border="0"></a></font></div></td>

</tr>

</table>

</div></td>

</tr>

</table></td>

</tr>

</table></td>

<%

'## INÍCIO DAS COLUNAS #############################################

Colunas = 3 '// TOTAL DE COLUNAS A SEREM EXIBIDAS

IF Contador = Colunas - 1 THEN

%>

</tr>

<%

Contador = 0

ELSE

Contador = Contador + 1

END IF

Paginacao.MoveNext

WEND

IF Contador = 2 THEN

ELSEIF Contador = 1 THEN

END IF

'## FIM DAS COLUNAS #############################################

%>

</table>

<table width="100%" border="0" align="center" cellpadding="4" cellspacing="4">

<tr>

<td><table width="100%" border="0" cellspacing="2" cellpadding="2">

<tr>

<td><table align="right">

<tr>

<td align="center">

<%

IF Cint(PagAtual) > 1 THEN

%>

<a href="shopping_produtos.asp?posicao_da_paginacao=<%=PagAtual-1%>" target="_parent"><img src="img/bt_flecha_anterior.gif" width="63" height="20" border="0" align="absmiddle"></a>

  

<%

ELSE

%>

<img src="img/bt_flecha_anterior.gif" width="63" height="20" align="absmiddle">  

<%

END IF

FOR t=1 TO TotalPages

IF CInt(t) = CInt(PagAtual) THEN

%>

<b><%=t%></b>

<%

ELSE

%>

<a href="shopping_produtos.asp?posicao_da_paginacao=<%=t%>"><%=t%></a>

<%

END IF

IF Cint(t) < TotalPages THEN

%>

<%

END IF

NEXT

 

IF Cint(PagAtual) < TotalPages THEN

%>

   <a href="shopping_produtos.asp?posicao_da_paginacao=<%=PagAtual+1%>" target="_parent"><img src="img/bt_flecha_proximo.gif" width="63" height="20" border="0" align="absmiddle"></a>

  

<%

ELSE

%>

   <img src="img/bt_flecha_proximo.gif" width="63" height="20" align="absmiddle">

<%

END IF

Paginacao.Close

%>

</td>

</tr>

</table></td>

</tr>

</table>

<table width="95%" border="0" align="center" cellpadding="0" cellspacing="0">

<tr>

<td>

<%

'## INÍCO DA PAGINAÇÃO #########################################

'Coloca o Nº página atual / Nº Total de páginas

Response.Write("Página " & PagAtual & " de " & TotalPages & "")

 

'Mostra os botões: Anterior e Próximo, utilizando a opção do IF

'Numeros - Calculos -------------------------------------------

IF TotalPages > 1 THEN

%>

</td>

</tr>

</table>

<%

END IF

END IF

SET Paginacao = NOTHING

%>

</td>

</tr>

</table>

<!--#include file="incl/incl_cabecalho3.asp"-->

</body>

</html>

Aguardo seu retorno colegas!

Deus abençoe a todos.

Até mais.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

QUERIDOS AMIGOS DO IMASTERS!

 

Estou quebrando a cabeça com esta paginação, pois não sei onde está o erro nela....

Pois ela não está funcionando aparentemente, ou seja; NÃO ME DÁ NENHUM ERRO, mas quando vou selecionar as paginações através dos números que ela gera, ex: retornar 1 2 3 4 5 avançar....

 

Por exemplo:

Abro o arquivo da paginação no IE, logo ele me tráz alguns produtos na tela, e quando vou clicar no número 2 da paginação ele me traz os mesmos produtos da primeira tela, sacaram.....

 

Então acho que está com algum problema...

E acho que é por causa da exibição em colunas de produtos que coloquei.....

Acho que é isso, mas não tenho certeza....

 

 

E gostaria de solicitar aos colegas uma ajuda se possível,

pois cheguei até aí neste código, mas não estou conseguindo sair daí....

Será que por gentileza me ajudarem com esta paginação?????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim que for definir no RS qual a pagina atual dê um Response.Write na variavel que informa isso e verifique se está correta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá SALGADO!

 

Me desculpe a falta de preparo, mas poderia me informar por gentileza onde devo colocar o código que me falou, e se possível possa também me mostrar se é isso no meu caso:

 

RESPONSE.WRITE PAGINACAO

 

Seria este comando no meu caso, sim ou não?

Se sim, onde devo colocar no meu codigo que postei, em que parte exatamente...

Obrigado pela força....

 

 

 

Até........

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui: Coloque nessa parte

'## INÍCO DA PAGINAÇÃO ############################################
'Verifica qual foi a página solicitada
IF Request.QueryString("posicao_da_paginacao") = "" THEN
PagAtual = 1
ELSE
PagAtual = Request.QueryString("posicao_da_paginacao")
END IF
Response.Write PagAtual

e vá verificando se o valor vai corretamente página a página.

Compartilhar este post


Link para o post
Compartilhar em outros sites

SALGADO!

 

Fiz oque você me passou, coloquei o response.write PagAtual

E quando abri na tela os produtos, na página primeira de número 1, quando clicava na paginação 1 ele me respondia 1, e assim sucessivamente sem problemas.

 

Mas oque me acontece, é que ele não está nem respeitando a configuração:

MaximoPorPagina = 6

Que no caso teria que me trazer somente seis registros de cada vez, mas ele me traz todos os que estão no banco...

 

Acredito que seje porque acrescentei, como pode ser visto no código que adicionei na página um código que amostra os produtos em colunas de loja virtual, produtos lado a lado, (o qual até o amigo Adriano Faria havia me passado anteriormente),...

 

Pois acho que deve estar errado alguma coisa alí, ou fora de ordem correta....

Por isso peço a ajuda dos COLEGAS, tanto SALGADO como ADRIANO....

 

Pois quero conseguir resolver isso?

 

O código está completo, é só pegar copiar e colocar com um nome qualquer que ele funciona....

Vejam se conseguem testar aí, e me ajudarem pois não quero desistir deste exemplo....

Quero conseguir fazer este código funcionar, mas para isso preciso da ajuda dos colegas, pois eu acho parei por aqui com meus conhecimentos de asp, ok... sozinho não consigo.

 

PODEM ME AJUDAR, POR GENTILEZA?????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que seja isso, por mais incrivel que pareça a paginação não restringe o recordset ao numero que definimos para a quantidade de registros, ele apenas divide em páginas com a quantidade definida mas todos os registros filtrados no SELECT se encontram nele, fazer apenas um WHILE NOT Paginacao.EOF não adianta, você deverá acrescentar um contador dentro de seu While e mais uma condição no mesmo, fica +/- assim

RegistroAtual=0
WHILE NOT Paginacao.EOF OR Not RegistroAtual=MaximoPorPagina
'...
RegistroAtual = RegistroAtual+1
Wend

Testa essa parte, mas também existe outro problema, seus links da paginação estão passando sempre a mesma página.

Compartilhar este post


Link para o post
Compartilhar em outros sites

OLÁ SALGADO E ADRIANO FARIA!

 

Salgado!

Conforme você me passou tentei fazer, se é pelo oque entendi, baseado neste parte que você me passou:

RegistroAtual=0

WHILE NOT Paginacao.EOF OR Not RegistroAtual=MaximoPorPagina

'...

RegistroAtual = RegistroAtual+1

Wend

EU acabei fazendo assim:

RegistroAtual = 0

'Abrimos agora um laço para montarmos os registros

WHILE NOT Paginacao.EOF OR Not RegistroAtual = MaximoPorPagina

 

<%

'## INÍCIO DAS COLUNAS #############################################

Colunas = 3 '// TOTAL DE COLUNAS A SEREM EXIBIDAS

IF Contador = Colunas - 1 THEN

%>

</tr>

<%

Contador = 0

ELSE

Contador = Contador + 1

END IF

Paginacao.MoveNext

RegistroAtual = RegistroAtual + 1

WEND

IF Contador = 2 THEN

ELSEIF Contador = 1 THEN

END IF

'## FIM DAS COLUNAS #############################################

%>

Mas acabou me dando este erro:

ADODB.Field error '80020009'

BOF ou EOF são verdadeiros, ou o registro atual foi excluído.

A operação solicitada pelo aplicativo requer um registro atual.

?

 

Fato interessante, é que esta paginação funciona bem direitinho sem a parte das COLUNAS que o Adriano, ha algum tempo tinha me passado. E assim também com a parte das colunas, se é somente ela sem a paginação funciona legal....

 

Mas quero reunilas em um só, mas não estou conseguindo!

Se o Adriano conseguir ajudar também.... fico grato!. pois foi ele quem me passou o código das COLUNAS então ele com certeza tira de letra esta....

 

 

Obrigado IRMÃOS ...

DEUS ABENÇOE A TODOS....

Compartilhar este post


Link para o post
Compartilhar em outros sites

E Aí colegas será que conseguem ajudar o colega aqui???Pô!!! fico muito grato pela ajuda dos colegas, pois estou tentando resolver esta paginação aqui em casa, mas nada de saiiiiiiiiiiiir....Não sei oque tem de errado, neste código de paginação que postei?Vejam se conseguem me ajudar, por favor!!! COLEGAS!!!Muito obrigado!Valeu....

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.