Ir para conteúdo

POWERED BY:

Arquivado

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

Cable

Paginação por ASP

Recommended Posts

Galera, seguinte:Eu preciso fazer em ASP, um tipo de paginação. É assim:Eu tenho uma pagina (index.asp) que carrega uma determinada noticia do banco de dados.Eu preciso daquele navegadorzinho abaixo de cada noticia (<Anterior - Index de noticias - Próxima>).Como eu posso fazer isso, de preferencia sem precisar mudar a estrutura da minha index ??Valew e ate mais gente !!![]'s :D B)

Compartilhar este post


Link para o post
Compartilhar em outros sites

PAGINAÇÃO COM ASP

 

Wagner Ponciano de Souza

http://wsvb.rg3.net

wagner@fatorx.com.br

 

 

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

 

Salve e acrescente registros (por volta de 12 pelo menos).

 

Agora, crie um arquivo ASP e salve-o com o nome “Paginacao.asp”.

Nele, adicione o conteúdo a seguir:

 

<%

dim Conn

dim RS

Const intPageSize=3 'Tamanho da página - você pode alterar se quiser

dim intCurrPage

dim a

set Conn=Server.CreateObject("adodb.connection")

set rs=server.CreateObject("adodb.recordset")

 

Conn.CursorLocation=3 'AdUseClient

 

'Na linha acima, definimos que o cursosr do banco de dados

'Deve estar no cliente. Com isso, podemos usar as própriedades

'de paginação.

 

Conn.Open "provider=microsoft.jet.oledb.4.0;data source=" & server.MapPath("paginacao.mdb")

RS.Open "select * from pessoas",conn

 

 

intCurrPage=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 QueryString

 

RS.PageSize=intPageSize

 

 

RS.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 recordset

 

a=0

while a < intPageSize and not RS.EOF

a=a+1

Response.Write RS.Fields("Nome").Value & "<BR>"

RS.MoveNext

wend

 

Response.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 if

next

Response.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 if

Response.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 if

RS.Close

Conn.Close

set rs=nothing

set conn=nothing

%>

 

Como você pôde ver, fazer paginação não é nenhum bicho de sete cabeças.

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.