Paginação em Asp Simples

Novo aqui no site? Talvez gostaria de assinar o
RSS feed do site?

Publicado em: 06/07/2007
Área: ASP
Visualizações: 8.262
Comentário(s): 3

imprimir envie por e-mail compartilhe
Começaremos criando um novo banco de dados no Access, salvem com o nome de produtos.mdb feito isso criem uma tabela com os seguintes campos como mostra a figura abaixo:



Salvem a Tabela com o Nome TProdutos, depois de criada a insiram nela 40 produtos, creio que a parte mais chata, mas vale apena, eu disse 40 produtos pois quanto mais a contidade de produtos melhor poderemos entender depois como funciona apaginação em Asp.



Para começar inicie o software de sua preferência para programar a página Asp, eu uso o Dreamweaver CS3 pois existem funcionalidades bastantes úteis nele.

Iniciem um novo arquivo Asp chamado
"paginacao.asp"

Primeiramente devemos criar a conexão como Banco de Dados Access ou seja o banco que criamos "produtos.mdb" vejam o codigo a baixo:

<%
'Abrimos a Conexão com o Banco
Dim caminho
Dim conexao
caminho = Server.MapPath("produtos.mdb")
Set conexao = Server.CreateObject("ADODB.Connection")
conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&caminho&";"

        'Selecionamos todos os Produtos da Tabela
Set rsBuscaProdutos = Server.CreateObject("ADODB.Recordset")
strBuscaProdutos = "SELECT * FROM TProdutos ORDER BY Produto_ID"
        rsBuscaProdutos.open strBuscaProdutos, conexao, 3, 3

'Definimos o Numero de Paginas com a propriedade "PageSize" do objeto Recordset
rsBuscaProdutos.PageSize = 10

'Criamos as Validações
if rsBuscaProdutos.eof then
   Mensagem = "Nenhum Registro Encontrado"
   Response.End
else
   'Definimos em qual pagina o visitante está
   if Request.QueryString("pagina")="" then
      intpagina = 1
   else
      if cint(Request.QueryString("pagina"))<1 then
intpagina = 1
      else
if cint(Request.QueryString("pagina"))>rsBuscaProdutos.PageCount then  
    intpagina = rsBuscaProdutos.PageCount
         else
    intpagina = Request.QueryString("pagina")
end if
      end if   
   end if   
        end if
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Tutorial de Paginação</title>
<style>
/*
Criei estas CSSs somente para melhorar o
layout da Tabela de Paginação. Vocês podem modificar
ao seus gostos... usem e abusem...:)
*/
.TProdutos{
border: 1px solid #666666;
margin: 2px 0px 2px 0px;
background: #FFFFFF;
border-collapse:collapse;
width: 800px;
}

.TProdutos td {
border: 0px solid #666666;
border-collapse:collapse;
}

.TProdutos td#Titulo {
border: 0px solid #666666;
font: 7pt Verdana, Arial, Helvetica;
height: 17px;
background: #063d97;
color:#FFFFFF;
}

.TProdutos td#Dados {
border: 1px solid #CCCCCC;
font: 7pt Verdana, Arial, Helvetica;
height: 18px;
background: #EAEFFF;
color: #666666;
}
</style>
</head>
<body>
<table border="0" class="TProdutos">
  <tr>
    <td width="181" id="Titulo">Produto ID</td>
    <td width="208" id="Titulo">Nome</td>
    <td width="201" id="Titulo">Tipo</td>
    <td width="190" id="Titulo">Categoria</td>
  </tr>
  <%
   'Iniciamos o Loop
    rsBuscaProdutos.AbsolutePage = intpagina
    intrec = 0
    While intrec<rsBuscaProdutos.PageSize and not rsBuscaProdutos.eof  
  %>
  <tr>
    <td id="Dados"><%=rsBuscaProdutos("Produto_ID")%></td>
    <td id="Dados"><%=rsBuscaProdutos("Produro_Nome")%></td>
    <td id="Dados"><%=rsBuscaProdutos("Protudo_Tipo")%></td>
    <td id="Dados"><%=rsBuscaProdutos("Produto_Categoria")%></td>
  </tr>
  <%
    rsBuscaProdutos.MoveNext
    intrec = intrec + 1
    if rsBuscaProdutos.eof then
       response.write " "
    end if   
    Wend  
  %>
  <tr>
    <td colspan="3"  id="Dados"></td>
    <td id="Dados">
    <%
    'Criamos as Validações para a navegação "Anterior" e "Próximo"  
    if intpagina>1 then
    %>
    <a href="paginacao.asp?pagina=<%=intpagina-1%>">Anterior</a>
    <%
    end if
    if StrComp(intpagina,rsBuscaProdutos.PageCount)<>0 then  
    %>
    <a href="paginacao.asp?pagina=<%=intpagina + 1%>">Próximo</a>  
    <%
    end if
    rsBuscaProdutos.close
    Set rsBuscaProdutos = Nothing
    %>
    </td>
  </tr>  
</table>
</body>
</html>


Resultado do código acima:



Salvem o arquivo como "paginacao.asp" e testem no IIS de vocês e vejam que não é complicado e sim bastante eficiente esta paginação. Tentei desenvolver do geito mais simples possivel.

Preencha o formulário para comentar:
Nome:*

E-mail:* (não será exibido)

Site: (http://)

Comentário:*

Deseja receber os comentários no e-mail?

Anti-spam: (nova imagem)





Augusto César

   - Publicado em: 16/08/2007 - 12:21

Muito bacana essa paginação, porém quando clico em próximo dá erro, como resolvo isso? Se o resultado da consulta não for mais de 01 página o script funciona legal, mas se passar de 01 página da "paw", como resolvo isso?

 

Guilherme

   - Publicado em: 02/11/2007 - 04:11

Muito boa a matéria cara!

 

Leonardo

   - Publicado em: 13/08/2008 - 16:15

Olá!!! Utilizei o seu código e ficou bom, porém ao clicar no botão "Próximo" traz a lista em branco como se não houvesse mais dados, o que não é verdade. Por favor necessito muito dessa implementação. Aguardo contato! Obrigado! Leonardo

 

Autor da matéria
Rodrigo
Formado em Sistemas de Informação pela Fac. de Tecnologia Uirapuru trabalha com Asp e Asp.Net a 2 anos desenvolvendo Webservice e Sites Corporativos, Intranets,.

Todas as matérias de Rodrigo

Publicidade
Seguir o Oficina da Net
RSS

RSS

RSS
Top matérias do mês
Matérias relacionadas
Tags

© 2005 - 2009 - Oficina da Net - v 4.0 - É proibida a reprodução parcial ou completa do conteúdo deste site sem autorização por escrito. Resolução adequada: 1024x768px.