ViaPocket Postado Novembro 14, 2012 Denunciar Share Postado Novembro 14, 2012 Seguinte. Quero saber qual o caminho para que devo seguir para que eu faça uma "paginação" de registro único.Imagine que estou visualizando determinado registro cujo ID foi capturado da URL.Quero que, ao clicar num elemento, o regsitro atual salte para o próximo ou anterior.To tentando me virar aqui com algo como rs.Movenext...mas ainda nada de funcionar.Um help por caridade. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Novembro 16, 2012 Denunciar Share Postado Novembro 16, 2012 Você pode usar uma paginação mesmo exibir de 1 em 1 registro (verifique os tópicos fixos ai em cima que tem exemplos ótimos), ou use sempre top 1 registros...exemploid atual=950, o anterior dele é 900 e o próximo é 1000botão anterior manda um id=949, o sql fica algo do tipo top 1 id from tabela where id<=949ou ainda usar os 3 ultimos registros sempre... onde você sabera qual o anterior e qual o proximo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ViaPocket Postado Dezembro 18, 2012 Autor Denunciar Share Postado Dezembro 18, 2012 (editado) Ok Bareta. Obrigado pelas sugestões. No meu caso o ID não é ordenado...então não posso "confiar" em colocar para Anterior algo como ID atual-1 e Próximo o ID atual +1. Achei que fosse só colocar um rs.Next e rs.Previous (ou algo equivalente). Para movimentar, o recordset tem que estar com vários registros Isso não acontece porque o select trás somente um registro (tem um WHERE na query).Vou dar uma fuçada no fórum. Se tiver algo na agulha posta ai.valeu! Editado Dezembro 19, 2012 por ViaPocket Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Dezembro 27, 2012 Denunciar Share Postado Dezembro 27, 2012 use a propriedade PageSize do recordeset definido para 1 registroabaixo link do tópico com uma paginação http://scriptbrasil.com.br/forum/index.php?showtopic=12549 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 1980coelho Postado Janeiro 27, 2013 Denunciar Share Postado Janeiro 27, 2013 use a propriedade PageSize do recordeset definido para 1 registroabaixo link do tópico com uma paginação http://scriptbrasil.com.br/forum/index.php?showtopic=12549estou com o mesmo problema.. uma pagina ue estou fazendo sobre videogames, me lista o top10 games e ao clicar em um dos 10 da lista que me vem as informacoes do ID correspondente da lista queria avancar para o proximo ou voltar ao anterior e ficar entre os 10 itens somente.. não estou conseguindo, pelo que estou vendo paginacao que falam e diferente se pega todos itens da tabela, nesse caso pelo que entendo e tipo so avancar ou retroceder pelo ID chamado como foi citado acima, +1 ou -1 no ID.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ViaPocket Postado Janeiro 31, 2013 Autor Denunciar Share Postado Janeiro 31, 2013 (editado) Olá amigos. Testei a paginação do link acima. Perfeita! Mas minha necessidade é de navegar por um registros por vez. Se eu usar o código o código do link acima para navegar por um registro por vez as opções Prox, Anterior, Primeiro, Último e etc ficam desabilitadas. Isso ocorre porque no meu caso usa um WHERE na consulta. Então o recordset sempre será igual 1 (um). E sendo assim o código entendo que não faz sentido exibir os links de navegação. Entendo que a lógica esteja correta.No meu caso o id do registro não tem ordem, é aleatório no BD. Então não dá pra usar a lógica "mova para rs +1 ou rs -1. Pois se meu id for igual a 5 talvez não exista no banco o item 6 nem o item 4.Por outro lado, se eu usar WHERE Campo <= '"&meu_id&"' também não funciona porque deste modo a consulta não trará o item que eu quero.Se alguém puder dar uma luz ficarei muito grato. Editado Janeiro 31, 2013 por ViaPocket Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 1980coelho Postado Janeiro 31, 2013 Denunciar Share Postado Janeiro 31, 2013 (editado) Olá amigos. Testei a paginação do link acima. Perfeita! Mas minha necessidade é de navegar por um registros por vez. Se eu usar o código o código do link acima para navegar por um registro por vez as opções Prox, Anterior, Primeiro, Último e etc ficam desabilitadas. Isso ocorre porque no meu caso usa um WHERE na consulta. Então o recordset sempre será igual 1 (um). E sendo assim o código entendo que não faz sentido exibir os links de navegação. Entendo que a lógica esteja correta.No meu caso o id do registro não tem ordem, é aleatório no BD. Então não dá pra usar a lógica "mova para rs +1 ou rs -1. Pois se meu id for igual a 5 talvez não exista no banco o item 6 nem o item 4.Por outro lado, se eu usar WHERE Campo <= '"&meu_id&"' também não funciona porque deste modo a consulta não trará o item que eu quero.Se alguém puder dar uma luz ficarei muito grato.ve se entendi e se esse codigo te resolve:<% Set adoCon = Server.CreateObject("ADODB.Connection")src = Server.MapPath("produtos.mdb")sConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & srcadoCon.Open sConnStrstrID = Clng(Request.Querystring("ID"))Set rs = Server.CreateObject("ADODB.Recordset")strSQL = "SELECT [iD], [category], [name], [info] FROM tblGames"rs.open strSQL, adoCon, 3, 3rs.PageSize = 1If rs.EOF Then Mensagem = "Nenhum Registro Encontrado"Response.End ElseIf Request.QueryString("pagina")="" Then intpagina = 1ElseIf cint(Request.QueryString("pagina"))<1 Thenintpagina = 1ElseIf cint(Request.QueryString("pagina"))>rs.PageCount Then intpagina = rs.PageCountElseintpagina = Request.QueryString("pagina")End IfEnd If End If End If rs.AbsolutePage = intpagina intrec = 0While intrec<rs.PageSize And NOT rs.EOF Response.Write ("<font size='3'>")Response.Write (rs("Name"))Response.Write ("<br>")Response.Write ("<font size='2'>")Response.Write (rs("Info"))Response.Write ("</font>")Response.Write ("<br>")rs.MoveNextintrec = intrec + 1If rs.EOF Then response.write " " End If Wend If intpagina>1 Then %> <a href="_paging.asp?pagina=<%=intpagina-1%>">Anterior</a> <% End IfIf StrComp(intpagina,rsViewTop10game.PageCount)<>0 Then %><a href="_paging.asp?pagina=<%=intpagina + 1%>">Próximo</a> <%End IfSet rs = NothingSet adoCon = Nothing %>se tiver duvidas fale.. abraco Editado Janeiro 31, 2013 por 1980coelho Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ViaPocket Postado Fevereiro 2, 2013 Autor Denunciar Share Postado Fevereiro 2, 2013 (editado) Olá 1980coelho! Primeiramente agradeço pela ajuda.Olha, é quase isso. Imagina o cenário. O cara clica num item da página A (página que lista os itens) e vai para a página B (página que trás os detalhes do item). O parâmetro é passado pela URL. Imagine que o ID passado pela URL seja 20. Então ao carregar a página B será exibido detalhes do item com ID igual a 20. Certo?Até aqui nada de novidade.O que preciso é que na página B tenha os botões (ou links) de navegação para navegar para outros itens na página B. Então tem que ser um esquema que passe o parâmetro (ID) para a própria página B. Ai tem que pegar no recordset o ID do item anterior e item posterior para servir como parâmetro para mandar para a URL.Outra possibilidade seria assim.Ter uma condição que, se o parâmetro da URL for null ele roda a consulta (sem parâmetro). O código que postou está perfeito para isso, caso contrário roda a consulta usando um WHERE CampoID= var_da_URL, ou seja, com parâmetro da URL.Isso eu montei. Desativei O IF do os links de navegação. Até que funcionou, dá pra navegar do jeito que preciso (com ou sem parâmetro na URL).Mas tem um pequeno inconveniente. Como desativei o IF dos navegadores o link Próximo fica aparecendo mesmo quando é o último registro e o link Anterior fica aparecendo mesmo quando é o primeiro registro.Como faço para contornar isso?valeu. Editado Fevereiro 2, 2013 por ViaPocket Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 1980coelho Postado Fevereiro 2, 2013 Denunciar Share Postado Fevereiro 2, 2013 bom vamos ver se entendi e consigo ajudar, na linha:strSQL = "SELECT [iD], [category], [name], [info] FROM tblGames"você tem então que definir aonde sera sua paginacao no caso exemplo;strID = Clng(Request.Querystring("ID"))strSQL = "SELECT [iD], [category], [name], [info] FROM tblGames WHERE = ID =" & strIDoustrSQL = "SELECT [iD], [category], [name], [info] FROM tblGames WHERE = ID =" & rs("NOME_DA_COLUNA")---aguardo contato.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Fevereiro 4, 2013 Denunciar Share Postado Fevereiro 4, 2013 a solução já foi postada o uso de pagesize e AbsolutePage resolve o problema Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ViaPocket Postado Fevereiro 5, 2013 Autor Denunciar Share Postado Fevereiro 5, 2013 (editado) Olá Bareta. Perdão, mas não consigo entender como o Pagesize vai atender.Vejam este tela. Talvez ajude a expor melhor minha necessidade Editado Fevereiro 5, 2013 por ViaPocket Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Fevereiro 5, 2013 Denunciar Share Postado Fevereiro 5, 2013 certo... retirei a oaginação fixa ali em cima... http://scriptbrasil.com.br/forum/index.php...ost&p=60707bom uma paginação consiste na exibição de x registros e em controles de navegação entre eles certo?temos a exibição de 1 registro por páginaRS.PageSize = 1 logo a quantidade de registros é a quantidade de páginas, e logo a ultima página é também a quantidade de registros e a primeira página é 1 independente so o id do primeiro item for 5000000 TotalPages = RS.PageCount o registro atual é numero da página atual... logo a página 10 pode equivaler ao registro id 200 RS.AbsolutePage = PagAtual isso é definido no inicio da paginação... registros próximo e anterior são pagina atual +1 e -1, logo deve ser tratado no caso de a pagina atual for a primeira ou a ultima Agora é so montar a navegação IF PagAtual > 1 THEN Response.Write("<a href='pagina.asp?PagAtual=" & 1 & "'>") Response.Write("Primeira") Response.Write("</a> ") Response.Write("<a href='pagina.asp?PagAtual=" & PagAtual - 1 & "'>") Response.Write("Anterior") Response.Write("</a> ") Else Response.Write("Primeira ") Response.Write("Anterior ") End If IF PagAtual <> TotalPages THEN Response.Write("<a href='pagina.asp?PagAtual=" & PagAtual + 1 & "'>") Response.Write("Próxima") Response.Write("</a> ") Response.Write("<a href='pagina.asp?PagAtual=" & TotalPages & "'>") Response.Write("Ultima") Response.Write("</a> ") Else Response.Write("Próxima ") Response.Write("Ultima ") End Ifbasicamente isso... a orden dos registros você define na SQL Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ViaPocket Postado Fevereiro 5, 2013 Autor Denunciar Share Postado Fevereiro 5, 2013 Hmmm...bom, vou testar. Mas ainda estou meio cético porque a página roda uma consulta assim:SELECT [sisMunCod], [sisMunCodEstado], [sisMunDesc] FROM SIS_MUNICIPIOS WHERE SisMunCod = '"&strID&"'Este WHERE é quem diz qual registro será selecionado. Se eu pressionar o link Próximo não haverá um valor para passar pela URL para satisfazer consulta. E é justamente a partir deste ponto que a coisa pega porque se não houver parâmetro haverá erro. Não?Então você pode pensar "bom, basta informar o parâmetro no link de navegação...algo como<a href='pagina.asp?PagAtual=" & TotalPages & "' &ID='"&rs("campo_pk")&"'>Creio que não funcionará porque rs("campo_pk") será resultado da consulta acima. Então se o select foi feito tendo como parâmetro o ID 100 o valor da variável do link ( o recordset rs("campo_pk) ) será exatamente o mesmo e a navegação não sairá do lugar.Mas vou reler seus comentários para ver se não estou escrevendo bobagem e fazer mais testes.Obrigado meu caro! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 1980coelho Postado Fevereiro 5, 2013 Denunciar Share Postado Fevereiro 5, 2013 tenta algo assim:RS.AbsolutePage = "&rs("campo_pk")&" Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Fevereiro 6, 2013 Denunciar Share Postado Fevereiro 6, 2013 Hmmm...bom, vou testar. Mas ainda estou meio cético porque a página roda uma consulta assim:SELECT [sisMunCod], [sisMunCodEstado], [sisMunDesc] FROM SIS_MUNICIPIOS WHERE SisMunCod = '"&strID&"'Este WHERE é quem diz qual registro será selecionado. Se eu pressionar o link Próximo não haverá um valor para passar pela URL para satisfazer consulta. E é justamente a partir deste ponto que a coisa pega porque se não houver parâmetro haverá erro. Não?Então você pode pensar "bom, basta informar o parâmetro no link de navegação...algo como<a href='pagina.asp?PagAtual=" & TotalPages & "' &ID='"&rs("campo_pk")&"'>Creio que não funcionará porque rs("campo_pk") será resultado da consulta acima. Então se o select foi feito tendo como parâmetro o ID 100 o valor da variável do link ( o recordset rs("campo_pk) ) será exatamente o mesmo e a navegação não sairá do lugar.Mas vou reler seus comentários para ver se não estou escrevendo bobagem e fazer mais testes.Obrigado meu caro!Pelo que eu entendi do que vi e do que tu falou eu usaria o q postei... lógico que pode ter falhas ... heheehhehehe..mais vamos por partes... num primeiro ponto destaco que se existe uma navegação de registros existem vários registros, logo existe um próximo e um anterior.O AbsolutePage não tem nada a ver com chave primária... se você exibe 10 registros por página e registro de ID 100 vai estar na página 10 e não na 100, isso sem falar dos registros que já não fazem parte desse mundo...Se SisMunCod for uma categoria que pode contemplar mais de um registro, irá funcionar... se for o ID do registro ai vai ter que mudar... ai pode ser criada uma solução baseada em MoveFirst e MoveNext, Tava digitando aqui lembrei de uma outra solução no caso da navegação baseada no registro atual, você pode informar no link o id atual e uma informação de para onde ir (anterior ou proximo) e usar select top pegando o 1 registro antes ou depois do atual... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 1980coelho Postado Fevereiro 8, 2013 Denunciar Share Postado Fevereiro 8, 2013 Hmmm...bom, vou testar. Mas ainda estou meio cético porque a página roda uma consulta assim:SELECT [sisMunCod], [sisMunCodEstado], [sisMunDesc] FROM SIS_MUNICIPIOS WHERE SisMunCod = '"&strID&"'Este WHERE é quem diz qual registro será selecionado. Se eu pressionar o link Próximo não haverá um valor para passar pela URL para satisfazer consulta. E é justamente a partir deste ponto que a coisa pega porque se não houver parâmetro haverá erro. Não?Então você pode pensar "bom, basta informar o parâmetro no link de navegação...algo como<a href='pagina.asp?PagAtual=" & TotalPages & "' &ID='"&rs("campo_pk")&"'>Creio que não funcionará porque rs("campo_pk") será resultado da consulta acima. Então se o select foi feito tendo como parâmetro o ID 100 o valor da variável do link ( o recordset rs("campo_pk) ) será exatamente o mesmo e a navegação não sairá do lugar.Mas vou reler seus comentários para ver se não estou escrevendo bobagem e fazer mais testes.Obrigado meu caro!Pelo que eu entendi do que vi e do que tu falou eu usaria o q postei... lógico que pode ter falhas ... heheehhehehe..mais vamos por partes... num primeiro ponto destaco que se existe uma navegação de registros existem vários registros, logo existe um próximo e um anterior.O AbsolutePage não tem nada a ver com chave primária... se você exibe 10 registros por página e registro de ID 100 vai estar na página 10 e não na 100, isso sem falar dos registros que já não fazem parte desse mundo...Se SisMunCod for uma categoria que pode contemplar mais de um registro, irá funcionar... se for o ID do registro ai vai ter que mudar... ai pode ser criada uma solução baseada em MoveFirst e MoveNext, Tava digitando aqui lembrei de uma outra solução no caso da navegação baseada no registro atual, você pode informar no link o id atual e uma informação de para onde ir (anterior ou proximo) e usar select top pegando o 1 registro antes ou depois do atual...me tira uma duvida os registros que você quer passar para o proximo ou voltar um, você quer movimentar pelo ID deles ou outro RS?se for pelo id e facil e so:<a href="main.asp?ID=<%= strID - 1 %>">Anterior</a> Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
ViaPocket
Seguinte. Quero saber qual o caminho para que devo seguir para que eu faça uma "paginação" de registro único.
Imagine que estou visualizando determinado registro cujo ID foi capturado da URL.
Quero que, ao clicar num elemento, o regsitro atual salte para o próximo ou anterior.
To tentando me virar aqui com algo como rs.Movenext...mas ainda nada de funcionar.
Um help por caridade.
Link para o comentário
Compartilhar em outros sites
15 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.