Ir para conteúdo

POWERED BY:

Arquivado

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

natalia

Paginação ainda não consegui resolver isso

Recommended Posts

Oi pessoal,Estou com problema com paginação, o código eu peguei aqui no forum, mas não está funcionando na minha página. Já postei essa pergunta na semana passada, mas ninguém soube responder.O problema é o seguinte:Eu faço a pesquisa e consigo ver o resultado dela, mas não consigo navegar pelas páginas. Vamos supor que a minha pesquisa deu o total de 3 páginas, mas qdo clico no link para navegar nessas páginas dá erro, pois as variáveis Prod, Preco1, Preco2 ficam vazias. O que posso fazer?registros = 12pagina = Request.QueryString("pagina")If pagina = "" Thenpagina = 1End If' Recebe os valores da página anterior, que contém o form.Prod = Trim(Request.Form("prod"))Preco1 = Trim(Request.Form("preco"))Preco2 = Trim(Request.Form("SegPreco"))strResult = " SELECT ...strResult = strResult & " WHERE "If Prod <> "" Then strResult = strResult & " Produto.Nome_Prod LIKE '%" & Prod & "%' " End IfIf Preco1 <> "" AND Preco2 <> "" Then strResult = strResult & " Produto.PrecoUS BETWEEN " & Preco1 & " AND " & Preco2 strResult = strResult & " ORDER BY Produto.PrecoUS "End IfCall Open_cnSet rsResult = Conexao.Execute(strResult)<% rsResult.PageSize = registrosIf rsResult.EOF ThenResponse.Write "Nenhum registro encontrado"ElsersResult.AbsolutePage = pagina %><% While Not rsResult.EOF AND x < rsResult.PageSizex = x + 1 %><%= Left(rsResult("Nome_Prod"),50)%><%= FormatNumber(rsResult("PrecoUS") , 2%> <%rsResult.MoveNextWend %> <% anterior = pagina - 1 proxima = pagina + 1 ultima = rsResult.PageCount primeira = 1 ultm2 = FormatNumber(rsResult.PageCount - 1,0) If pagina <> 1 Then Response.Write "<b>« <a href=resultado2.asp?pagina="&primeira&" class='menu'>Primeira Página</a></b> " End If If pagina > 1 AND pagina <> 2 Then Response.Write "<b> <a href=resultado2.asp?pagina="&anterior - 1&" class='menu'>"&anterior - 1&"</a> </b> " End If If pagina > 1 Then Response.Write "<b> <a href=resultado2.asp?pagina="&anterior&" class='menu'>"&anterior&"</a> </b> " End If Response.Write "<b> "&pagina&" </b> " If Not rsResult.EOF Then Response.Write "<b> <a href=resultado2.asp?pagina="&proxima&" class='menu'>"&proxima&"</a> </b> " End If If Not rsResult.EOF AND pagina <> ultima AND pagina <> ultm2 Then Response.Write "<b> <a href=resultado2.asp?pagina="&proxima + 1&" class='menu'>"&proxima + 1&"</a> </b> " End If If Not rsResult.EOF Then Response.Write "<b><a href=resultado2.asp?pagina="&ultima&" class='menu'>Última Página</a> »</b> " End If End If%><%rsResult.CloseCall Close_cnSet rsResult = Nothing%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ou você armazena os valores dessas variáveis em sessions ou passa elas por QueryString, no link para as páginas!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,Eu dei uma olhada por cima, e acho que você está passando os parâmetros por querystring e tentando resgatar do form.ao invés de utilizar:Prod = Trim(Request.Form("prod"))Preco1 = Trim(Request.Form("preco"))Preco2 = Trim(Request.Form("SegPreco"))Faça assim:Prod = Trim(Request("prod"))Preco1 = Trim(Request("preco"))Preco2 = Trim(Request("SegPreco"))Desse modo funciona qdo você dá submit no formulário ou quando transmite dados por querystring.dá uma olhada no seu link tb, eu notei que você não está transmitindo os parâmetros prod, preço1 e preco2... se você não enviar não tem como resgatar!! :) []'sGregório

Compartilhar este post


Link para o post
Compartilhar em outros sites

Natalia este codigo me ajudou muito para entender o que e paginação e como fazer espero que te ajude tb..

 

 

 

Ao contrário do que muitos pensam, fazer paginação é algo muito fácil.Para isso, precisamos entender como funciona.O objeto Recordset possui 3 propriedades que usamos para fazer a paginação:PageSize: Define o tamanho da página (por exemplo, você pode definir que uma página tenha 10 registros) PageCount: Retorna o número de páginas do recordset. O ADO internamente divide o número total de registros pelo PageSize. AbsolutePage: Com ele indicamos ou pegamos a página atual do recordset. Para ver como funciona, crie um banco de dados chamado "paginacao.mdb". Crie nele uma tabela “Pessoas”, com os seguintes campos (no nosso exemplo usamos um banco de dados Access, mas você pode usar outro se for o caso):Tabela Pessoas Campo  Tipo de dados (deixe o tamanho padrão)  ID Autonumeração Nome Texto <% dim Conndim RSConst intPageSize=3 'Tamanho da página - você pode alterar se quiserdim intCurrPagedim a set Conn=Server.CreateObject("adodb.connection")set rs=server.CreateObject("adodb.recordset")Conn.CursorLocation=3 'AdUseClient'Na linha acima, definimos que o cursor do banco de dados'Deve estar no cliente. Com isso, podemos usar as propriedades'de paginação.Conn.Open "provider=microsoft.jet.oledb.4.0;data source=" & server.MapPath("paginacao.mdb")RS.Open "select * from pessoas",connintCurrPage=cint(Request.QueryString("CurrPage"))'Pega a próxima página (que foi chamada através dos links definidos mais abaixo)if intCurrPage=0 then intCurrPage=1'Se chamamos essa página na primeira vez 'definimos que a página atual será a página 1'Caso contrário, é usado o valor que foi retornado'pela QueryStringRS.PageSize=intPageSizeRS.AbsolutePage=intCurrPage 'No Loop abaixo, contamos de 1 até o Tamanho da página'(no nosso caso, 3).'O registro 1 é o primeiro registro da página atual,'e não o do recordseta=0 while a < intPageSize and not RS.EOF    a=a+1    Response.Write RS.Fields("Nome").Value & "<BR>"    RS.MoveNext wendResponse.Write "<BR>"for a = 1 to RS.PageCount    if a <> intCurrPage then         'Se "a" for diferente da página atual,        'Mostramos um link para a página(com o valor de a)        Response.Write "<a href=""paginacao.asp?Currpage=" & a & """>" & a & "</a> "    else        Response.Write a & " "    end ifnextResponse.Write "<BR>"if intCurrPage > 1 then    'Caso exista uma próxima página...    Response.Write "<a href=""paginacao.asp?Currpage=" & intCurrPage-1 & """>Página Anterior</a>"end ifResponse.Write " "if intCurrPage < RS.PageCount then    'Caso exista uma página anterior...    Response.Write "<a href=""paginacao.asp?Currpage=" & intCurrPage+1 & """>Próxima Página</a>"end ifRS.CloseConn.Close set rs=nothingset conn=nothing%>  

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.