Ir para conteúdo

POWERED BY:

Arquivado

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

neotheone

Dificuldade na paginação

Recommended Posts

Fala pessoal, bem com certeza esse problema ja foi discutido aqui mas estou com dúvidas, eu sou iniciante no ASP.To desenvolvendo um sistema simples de cadastro de Nome, email e icq, e em uma outra página mostra todas as pessoas cadastradas e seus respectivos nome,email e icq.A única coisa q quero aprender é mostrar 3 registros por página, eu ja andei lendo sobre paginação aqui no fórum, o problema é q nao estou sabendo como inserir isso no meu código.Segue abaixo meu codigo:<%conexao="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("agenda.mdb")Set conn=Server.CreateObject("ADODB.connection")conn.open conexaosql="select * from agenda"Set rs=conn.execute(sql)%><table width="715" border="1" cellpadding="0" cellspacing="0"><%do while not rs.eof%> <!--DWLayoutTable--> <tr> <td width="592" height="59" valign="top">Nome: <%=rs.fields("nome")%> <br> E-mail: <%=rs.fields("email")%><br>ICQ: <%=rs.fields("icq")%></td> </tr> <tr> <td height="57" valign="top"></td> </tr> <tr> <td height="58" valign="top"></td> </tr> <% rs.movenextloop%></table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom vou tentar ajuda-lo, eu utilizo uma paginação que vi aqui no forum acho que consegui entende-la... vou tentar explica-la ;)

 

ASP [/tr][tr]      registros = 10

     endereco="noticias.asp"

     

     rs.cachesize = registros

     rs.pagesize = registros

     

     pagina=request.querystring("pagina")

     if pagina = "" then

     pagina = 1

     end if

[/tr]

 

registros = 10

Aqui você seta quantos registros você quer que apareceça por pagina

endereço, aqui você coloca o endereço da pagina aonde vai ser a paginação...

 

rs.cachesize, aqui ele guarda no cacha quantos registros vão ser utilizados por paginas para continuar a paginação nas paginas seguintes...

 

rs.pagesize = aqui é praticamente a mesma função do registros, ele guarda quantos registros por pagina....

 

ASP [/tr][tr]pagina=request.querystring("pagina")

     if pagina = "" then

     pagina = 1

     end if

[/tr]

 

Nessa parte ele faz uma verificação com IF para ver se está na pagina um, se não tiver nenhum valor pagina, então significa que está na primeira pagina e guarda o valor da pagina...

 

ASP [/tr][tr]SQL="SELECT * FROM noticias ORDER BY id DESC"

     RS.Open SQL,Conexao,3,3

       

     if rs.eof then

     %>

     <span class="texto_Laranja_Bold">Nenhum registro encontrado</span>

     <%

     else

     rs.absolutepage = pagina

     While not rs.eof AND X < registros

     X = X + 1

     %>

[/tr]

 

Você faz o SELECT normalmente, dai se faz a verificação se existem registros, se não existir (if rs.eof then) então retorna a msg de nenhum registro e ncontrado...

SENÃO (else) ele guarda o valor de onde você está, ou seja a pagina atual ( rs.absolutpage), depois ele faz um looping, enquanto não for o final do arquivo E o X for menor que os registros (que você la emcima colocou como 10) ele vai ficar fazendo o looping e mostrando os registros...

X = X + 1 é um contador de registros, cada registro que ele mostrar e o looping jogar para cima para fazer tudo de novo, ele adiciona + 1 no X até chegar em 10 e satisfazer o looping...(While not rs.eof AND X < registros) dai quando satisfazer ele para de mostrar os registros (no caso quando tiver 10 registros)

 

dai você mostrar agora o que quiser... que é os registros, no caso seu, nome, icq e email acho... depois que mostra-los

 

ASP [/tr][tr] <%

     RS.MoveNext

     Wend      

     %>

[/tr]

 

Aqui depois que ele mostrar o registro ele vem da um movenext ou seja vai pro proximo registro e o wend faz o looping, tipo joga la pro while de novo aonde soma + 1...

 

ASP [/tr][tr] <%

    FOR I = 1 TO rs.pagecount STEP 1

    Response.write "<A href=" & endereco & "?pagina=" & i & " class='link01'>"& i & "</A> "

    NEXT

   

        %>

[/tr]

 

Aqui em cima ele seta o FOR como I = 0 até rs.pagecount (o recorset calcula quanto registros vai dar por pagina, digamos que você tem 50 reigstros, como vai ser 10 por pagina, então vai dar 5 paginas), então ele faz algo to tipo de 1 até 5 (o step 1, seria algo em como ele vai adicionado, ele adiciona 1, ou seja 1, 1+1, 2, 2+1, 3...até chegar o numero final do rs.pagecount)

dai ele da um response.write dentro do for para mostrar os links, o endereco que você colocou no começou do codigo, o I é o que você colocou dentro do for, que ele sempre vai ser adicionado mais um... e por fim o next e faz o looping novamente, o resultado vai ser algo como

1 2 3 4 5 com seus respectivos links...

 

E aqui eu fiz uma navegação com proximo, anterior, ultimo e afins...se você quiser utilizar ou estudar =)

 

ASP [/tr][tr] <% if pagina > 1 then

Response.write "<A href=" & endereco & "?pagina=1 class='link01'>Primeira</A> "

end if %>

<% if pagina < rs.pagecount then

Response.write "<A href=" & endereco & "?pagina=" & pagina + 1 & " class='link01'>Próxima</A> "

end if %>

<%

if rs.recordcount > registros then

FOR I = 1 TO rs.pagecount STEP 1

Response.write "<A href=" & endereco & "?pagina=" & i & " class='link01'>"& i & "</A> "

NEXT

else

response.write " "

end if

%>

<% if pagina > 1 then

Response.write "<A href=" & endereco & "?pagina=" & pagina - 1 & " class='link01'>Anterior</A> "

end if %>

 

<% if pagina < rs.pagecount then

Response.write "<A href=" & endereco & "?pagina=" & rs.pagecount & " class='link01'>Última</A> "

end if%></center>

<% end if%>

[/tr]

 

Agora é só tentar entender, caso tiver alguma duvida pode perguntar, não é dificil só questão de treinar e tentar entender =)

espero que te ajude =)

 

Abraços

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.