Ir para conteúdo

POWERED BY:

Arquivado

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

Vinícius Siller

[Resolvido] Paginação ASP+MySql

Recommended Posts

Espero que esse assunto não aborreça os moderadores (risos).

 

Caso:

Bom, veja essa paginação que montei, utilizei algumas partes de outras paginações que inclusive peguei aqui no fórum.

Visuamente fica assim:

 

‹ primeira « anterior 1 2 3 próxima » última ›

Sendo que os links: ‹ primeira, « anterior, próxima » e última › ficam desativados quando não há mais registros para exibir.

 

Ela funcionou legal até certo ponto.

Quando coloquei para exibir 2 registros por página de um grupo de 22 registros, gerou 12 páginas, ou seja, ele entendeu ter 24 registros.

 

Dúvida:

Ao clicar no link "última" que me leva à última página, exibe a mensagem "Nenhum Registro Encontrado" .

O correto seria gerar 11 páginas de 2 registros em cada.

Porque está gerando 12 páginas de 22 registros, sendo 2 por página?

 

Segue o código:

<style>
.centraliza{text-align:center;}
.n_cinza_14{font: 14px "Trebuchet MS", Tahoma, Arial; color:#666;font-weight:bold;}
.link_pag_selecionado {font: 13px "Trebuchet MS", Tahoma, Arial;font-weight: bold;color: #00f;text-decoration:none; background:#fff url('../imagens/seta_paginacao.gif') 5px 5px no-repeat; padding:8px 5px 0 5px;}
.link_n_preto_11 a:link {font: 13px "Trebuchet MS", Tahoma, Arial;font-weight: bold;color: #00f;text-decoration:none;}
.link_n_preto_11 a:visited {font: 13px "Trebuchet MS", Tahoma, Arial;font-weight: bold;color: #00f;text-decoration:none;}
.link_n_preto_11 a:hover {font: 13px "Trebuchet MS", Tahoma, Arial;font-weight: bold;color: #f60;text-decoration:underline;}
</style>

<div id="conteudo">

<%
id_not = numerico(limpa_var(request.QueryString("id_not")))
%>

<div class="titulo_texto">Notícias</div>

<%
'numero de registros por pagina...
pageSize = 5

if(len(Request.QueryString("pagina")) = 0 )then
paginaAtual = 1
else
paginaAtual = CInt(Request.QueryString("pagina"))
end if

' conta o numero de registros...
strSQL = "SELECT COUNT(*) AS total FROM tbl_noticias where status_not = 1"
set rs = conexao.execute(strSQL)

'total de registros
recordCount = Cint(rs("total"))

'calculamos o numero de paginas...
pageCount = (recordCount / pageSize)

If pageCount < 1 then
pageCount = 1
end if

rs.Close()

Flag1 = INT(paginaAtual / pagesize)
PI = INT(Flag1 * pagesize)
IF PI = 0 THEN
PI = 1
END IF
PF = PI + pagesize - 1

strSQL = "SELECT id_not, titulo_not FROM tbl_noticias where status_not = 1 ORDER BY id_not DESC LIMIT " & (paginaAtual - 1) * pageSize & " , " & pageSize

rs.Open strSQL, conexao
set rs = conexao.execute(strSQL)
if rs.BOF and rs.EOF then
Response.Write "<br><br><br><br><center>Nenhum Registro Encontrado</center>"
else
%>

<div>

<%
do while not rs.eof
titulo_not = rs("titulo_not")
%>

<div id="lista_meio">
<div class="link_n_azul_11"><a title="<%=titulo_not%>" href="noticias.asp?id_not=<%=rs("id_not")%>&pagina=<%=paginaAtual%>">» <%=titulo_not%></a></div>
</div>

<%
rs.MoveNext()
loop
%>

<%
TotPag = cInt(pageCount+1)
if cInt(pageCount) > 1 then

Response.Write "<div class='centraliza link_n_preto_11'>"
Response.Write "<hr />"
Response.Write "<div class='n_preto_11'>Páginas:</div><br />"

strLinkPaginacao = request.ServerVariables("SCRIPT_NAME")+"?id_not="&id_not&"&"
'Links desativados
if Cint(paginaAtual) = 1 then Links = Links & "<span class='n_cinza_14'>‹ primeira</a></span>  "
if Cint(paginaAtual) = 1 then Links = Links & "<span class='n_cinza_14'>« anterior</span>  "
'Links ativados
if Cint(paginaAtual) > 1 then Links = Links & "<a href='" & strLinkPaginacao & "pagina=1'>‹ primeira</a>  "
if Cint(paginaAtual) > 1 then Links = Links & "<a href='" & strLinkPaginacao & "pagina=" & paginaAtual-1 & "'>« anterior</a>  "
if (paginaAtual-2) > 0 then
for I = INT(paginaAtual-2) TO paginaAtual-1
Links = Links & "<a href='" & strLinkPaginacao & "pagina=" & I & "'> " & I & "</a> "
next
end if
'Página Atual
Links = Links & "<span class='link_pag_selecionado'>" & paginaAtual & "</span>"

if (paginaAtual+2) <= TotPag then
for I = paginaAtual+1 TO INT(paginaAtual+2)
Links = Links & "<a href='" & strLinkPaginacao & "pagina=" & I & "'> " & I & "</a> "
next
end if
'Links ativados
if Cint(paginaAtual) < TotPag then Links = Links & "<a href='" & strLinkPaginacao & "pagina=" & paginaAtual+1 & "'>  próxima »</a>  "
if Cint(paginaAtual) < TotPag then Links = Links & "<a href='" & strLinkPaginacao & "pagina=" & TotPag & "'>última ›</a>"
'Links desativados
if Cint(paginaAtual) = TotPag then Links = Links & "<span class='n_cinza_14'>próxima  »</span></a>  "
if Cint(paginaAtual) = TotPag then Links = Links & "<span class='n_cinza_14'>última ›</span></a>  "

Response.Write"" & Links &""

Response.Write"</div>"
end if
Response.Write"</div>"
end if
Fechars(rs)		
%>

</div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou até com vergonha de postar, mas vejam isso:

 

Troquei isso:

<%
TotPag = cInt(pageCount+1)
if cInt(pageCount) > 1 then
%>

Por isso:

<%
TotPag = round(pageCount+0.4)
if cInt(pageCount) > 1 then
%>

Dessa maneira funcionou corretamente.

Isso é gambiarra né? Ou tem lógica?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa, não querendo te decepcionar, mas na verdade seu código todo é uma gambiarra. Você montou seu recordcount, pagecount e pagesize através de uma consulta e fez matemática para chegar nos valores necessários.

 

Isso não é necessário. Você tem funções prontas que lhe dão esse valores.

 

Por exemplo, usando somente a sua segunda consulta você já consegue tudo que precisa para montar sua paginação.

 

recordcount = rs.recordcount

pagecount = rs.pagecount

pagesize = rs.pagesize.

 

Vou postar um exemplo de código abaixo e dê uma olhada, pode lhe facilitar a vida:

 

<%
dim cor1, cor2, intPagina
expSQL="select * FROM tabela WHERE IDCLIENTE = '"& SESSION("ID") &"'"

call AbreConexao()
'set bd =cn.execute(expSQL)
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open expSQL, cn, 3, 3
rs.Pagesize = 100


	if Request.QueryString("pagina")="" then
	   intpagina = 1
	else
		if cint(Request.QueryString("pagina"))<=1 then
			intpagina = 1
		else
			if cint(Request.QueryString("pagina")) > rs.PageCount then
				intpagina = rs.PageCount
			else
				intpagina = Request.QueryString("pagina")
			end if
		end if   
	end if

'abaixo server para intercalar as cores das linhas, no seu caso acho que não será útil, já que só irá exibir dois 'resgistros por página

Cor1 = "#EEEEEE"
Cor2 = "#FFFFFF"

Controle = 0
%>

<!--o esquema abaixo monta um menu de navegação nas páginas, não igual ao que você quer fazer, mas funciona. Esse abaixo te dirá em qual página voce está, quantas tem e tem um campo e um botão para digitar para qual pagina quer ir -->
<table width="792" border="0" align="center">
  <tr>
	<td width="594"><div align="right" style="font-weight: bold; color: #990000;"><%="Página: " & intpagina & "/" & rs.PageCount%></div></td>
	<td width="188">
	<form name="form1" method="get" action="tabela.asp">
		<input type="text" name="Pagina" align="left" class="boxtext">
		<input type="submit" name="submit" value="Ir" class = "formbutton">
	</form>
	</td>
  </tr>
</table>
<br>
<div align="center">
<table width="798" border="1" align="center">
	<tr>
	<td width="90" bgcolor="#990000"><div align="center" style="font-weight: bold; color: #FFFFFF;">campo1</div></td>
	<td width="207" bgcolor="#990000"><div align="center" style="font-weight: bold; color: #FFFFFF;">campo2</div></td>
	<td width="219" bgcolor="#CC0000"><div align="center" style="font-weight: bold; color: #FFFFFF;">
	  <div align="center">campo3</div>
	</div></td>
	<td width="254" bgcolor="#990000"><div align="center" style="font-weight: bold; color: #FFFFFF;">campo4</div></td>
	</tr>
	<%
	rs.AbsolutePage = intpagina
	intrec = 0
	do while intrec<rs.PageSize and not rs.eof
		If Controle = 0 Then
			Cor = Cor1
			Controle = 1
		Else
			Cor = Cor2
			Controle = 0
		End if%>
		<tr>
		<td bgcolor=<%Response.Write(Cor)%> ><div align="center">  <%=rs.absoluteposition%></div></td>
		<td bgcolor=<%Response.Write(Cor)%> ><div align="center">  <%=rs(Ucase("INSTANTE"))%></div></td>
		<td bgcolor=<%Response.Write(Cor)%> ><div align="center">  <%=rs(ucase("fone"))%></div></td>
		<td bgcolor=<%Response.Write(Cor)%> ><div align="center">  <%=rs(ucase("STATUS"))%></div></td>
		<%
		rs.movenext
		intrec = intrec + 1
	loop
	'Criamos as Validações para a navegação "Anterior" e "Próximo" 
	if intpagina>1 then
		%>
		<a href="tabela.asp?pagina=<%=intpagina-1%>">Anterior</a>
		<%
	end if
	if StrComp(intpagina,rs.PageCount)<>0 then
		%>
		<a href="tabela.asp?pagina=<%=intpagina + 1%>">Próximo</a>
		<%
	end if
	rs.close
	Set rs = Nothing
	%>
	
</tr>
</table>
</div>

Bom, a parte em HTML não está lá essas coisas, faz tempo que fiz, só agora já achei um monte de erro, rs...

Mas a parte em ASP está corretinha, se tiver dúvidas avisa.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aquele 0.4 foi um verdadeiro POG (o Ted k' vai virar seu fã hehe), pois nem sempre o 0.4 servirá.

 

Se a sugestão do Claudio Neto não lhe servir, dê uma olhada na Classe de páginação que postei no Laboratório de Scripts. Utilizo ela sem problemas e sempre que acho algum, posto a correção lá.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amiguinhos, se vocês observaram no título do post e no SQL, meu banco de dados é MySql, logo as funções que o Claudio Neto passou, não me servem. Certo?

Qual o melhor modo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aquele 0.4 foi um verdadeiro POG (o Ted k' vai virar seu fã hehe), pois nem sempre o 0.4 servirá.

Tem gente que se esconde por meio de outros (reticências)!!! http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha só, achei algo dizendo que funcionar o recordcount com o MySQL é necessário fazer include do arquivo adovbs.inc, que fica em arquivos de programas --> arquivos comuns --> system --> ADO.

 

Se isso for verdade, pode ser que também libere o pagecount e o pagesize.

 

No tópico ele dizia que o arquivo deve estar no mesmo diretório de sua página.

 

Infelizmente não tenho mysql instalado aqui para testar antes de te dar a dica, então não tenho como confirmar que funcione.

 

O link para o tópico que achei está aqui

 

Depois diga se funcionou.

 

Ah, e desculpe, não tinha conhecimento de que não funciona essas funções para mysql...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hargon, testei minha "gambiarra" em diversas situações, com diferentes grupos de registros e funcionou perfeitamente.

Sua classe é sem dúvidas fantástica, mas é uma penca de linhas. Minha inteção é reduzir linhas de código.

 

Eu vi uma paginação que o Ted'K fez, perguntaram à ele sobre links de anterior, próximo, limitar exibição de número de páginas e ele disse que era só adicionar uns "if's", mas o tópico morreu e até hoje não achei nada relacionado.

 

Poderíamos ressucitar o tópico?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, já?

Bom em relação a paginação que você já colocou aqui no fórum e eu citei acima.

 

Seria interessante ver um modo de colocar algo assim:

‹ primeira « anterior [1] 2 3 próxima » última ›

 

Imagine que temos 10 páginas nessa paginação e eu estou na 5, logo ela estaria assim:

‹ primeira « anterior 3 4 [5] 6 7 próxima » última ›

 

Repare que as páginas 1 e 2 sumiram.

Detalhe: os links: ‹ primeira, « anterior, próxima » e última › ficam desativados quando não há mais registros para exibir.

 

Eu tenho essa solução em Access, se ela ajudar na construção da MySql eu posto aqui Ted'K.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Foi mal a piadinha rapaz... mas falando sério, a classe que criei faz isso tudo que você precisa. A quantidade enorme de linhas é pq ela faz paginação para Access e MySQL, e ainda faz algumas validações importantes para a classe. Você pode remover esses detalhes para diminuir o código.

 

Sobre o arredondamento do 0.4, na classe criei essa função (1/2 POG) para arredondamento, veja se lhe atende para o seu primeiro código, talvez já resolva:

Function fInt(valor)
		Dim resultado		
		resultado = valor
		If (resultado > cInt(resultado)) Then
			valor = split(resultado,",")
			resultado = cInt(valor(lBound(valor))) + 1
		Else
			resultado = cInt(resultado)
		End If
		fInt = resultado
	End Function

Se não servir, poste sua solução em Access para adaptarmos ao MySQL.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tudo bem Hargon, sua piadinha faz parte, comigo não tem stress.

Seguinte, como eu havia dito, tenho uma paginação para banco Access, quem a fez foi meu amigo Marcelo e eu fiz algumas adaptações.

Será que tem como passar para MySQL com as mesmas funcionabilidades?

 

Segue o código:

<div id="conteudo">
<div>Mais notícias</div>
<%
id_not = request.QueryString("id_not")
intPagina = Request.QueryString("pagina")
if intPagina = "" then intPagina = 1
Set rs = Server.Createobject("ADODB.RECORDSET")
Set rs.ActiveConnection = Conexao
QtdRegistro = 2	
rs.CursorType = 3
rs.PageSize = QtdRegistro
strSQL = "SELECT id_not, titulo_not FROM tbl_noticias ORDER BY id_not DESC;"
rs.Open strSQL, Conexao
if rs.BOF and rs.EOF then
Response.Write "<br><br><br><br><center>Nenhum Registro Encontrado</center>"
else
%>

<ul>
<%
if Int(intPagina) > rs.PageCount then intPagina = 1
rs.AbsolutePage = intPagina
x = 0
Do While Not rs.EOF and x < rs.PageSize
x = x + 1 
titulo_not = rs("titulo_not")
%>
<li><a title="<%=titulo_not%>" href="noticias.asp?id_not=<%=rs("id_not")%>&pagina=<%=intPagina%>">» <%=titulo_not%></a></li>
<%
rs.Movenext
loop
%>
</ul>

<div>
<hr />
<%
'Valores
TotReg = rs.RecordCount
TotRegPag = QtdRegistro
TotPag = rs.PageCount

'Só mostra a paginação se houver registros suficientes
if TotPag > 1 then

Response.Write "<div class='n_preto_11'>Páginas:</div><br />"

strLinkPaginacao = Request.ServerVariables("SCRIPT_NAME")+"?id_not="&id_not&"&"

'Imprime " primeira >> " e " anterior > "  sem seus respectivos links
if Cint(intPagina) = 1 then Links = Links & "<span class='n_cinza_14'>‹ primeira</a></span>  "
if Cint(intPagina) = 1 then Links = Links & "<span class='n_cinza_14'>« anterior</span>  "

'Imprime " primeira >> " e " anterior > "  com seus respectivos links
if Cint(intPagina) > 1 then Links = Links & "<a href='" & strLinkPaginacao & "pagina=1'> ‹ primeira </a>  "
if Cint(intPagina) > 1 then Links = Links & "<a href='" & strLinkPaginacao & "pagina=" & intPagina-1 & "'> ‹‹ anterior </a>  "

'Imprime as páginas que ficarão ao lado esquerdo da página selecionada
if (intPagina-2) > 0 then
for I = INT(intPagina-2) TO intPagina-1
Links = Links & "<a href='" & strLinkPaginacao & "pagina=" & I & "'> " & I & "</a> "
next
end if

'Imprime a página atual
Links = Links & "<span class='link_pag_selecionado'>" & intPagina & "</span>"

'Imprime as páginas que ficarão ao lado direito da página selecionada
if (intPagina+2) <= TotPag then
for I = intPagina+1 TO INT(intPagina+2)
Links = Links & " <a href='" & strLinkPaginacao & "pagina=" & I & "'> " & I & " </a>"
next
end if

'Imprime " próxima >> " e " última > "  com seus respectivos links
if Cint(intPagina) < Cint(TotPag) then Links = Links & "  <a href='" & strLinkPaginacao & "pagina=" & intPagina+1 & "'> próxima ›› </a>"
if Cint(intPagina) < Cint(TotPag) then Links = Links & "  <a href='" & strLinkPaginacao & "pagina=" & TotPag & "'>última ›</a>"

'Imprime " próxima >> " e " última > "  sem seus respectivos links
if Cint(intPagina) = Cint(TotPag) then Links = Links & "  <span class='n_cinza_14'>próxima  »</span></a>"
if Cint(intPagina) = Cint(TotPag) then Links = Links & "  <span class='n_cinza_14'>última ›</span></a>"

'Imprime a paginação montada
Response.Write"" & Links &""

end if
Response.Write"</div>"
end if
Fechars(rs)		
%>
</div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

No código do seu amigo, altere a linha:

rs.CursorType = 3

Para

Conexao.CursorLocation = 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz apenas essa alteração que falei, e ele funcionou perfeitamente no MySQL e Access.

 

Aí não deu certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso.

 

Ele paginou usando Recordset. Comparei o código do seu amigo com o código do Ted k' e vi que a única diferença entre eles era essa, com a vantagem que o código do Ted k' funciona com MySQL.

 

Fiz essa alteração e funcionou normal. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hum sim.

Bom, por enquanto agradeço ao pessoal pela força e mais tarde posto o resultado se ocorreu tudo bem aqui.

Grande abraço! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, já?

Bom em relação a paginação que você já colocou aqui no fórum e eu citei acima.

 

Seria interessante ver um modo de colocar algo assim:

‹ primeira « anterior [1] 2 3 próxima » última ›

 

Imagine que temos 10 páginas nessa paginação e eu estou na 5, logo ela estaria assim:

‹ primeira « anterior 3 4 [5] 6 7 próxima » última ›

 

Repare que as páginas 1 e 2 sumiram.

Detalhe: os links: ‹ primeira, « anterior, próxima » e última › ficam desativados quando não há mais registros para exibir.

 

Eu tenho essa solução em Access, se ela ajudar na construção da MySql eu posto aqui Ted'K.

em casa perdido lembrei desse tópico e olha o que fiz:

 

<%@ Language="VBScript" %>
<%
Dim Conexao
Set Conexao = Server.CreateObject("Adodb.Connection")
	Conexao.ConnectionString = "Driver=MySQL ODBC 3.51 Driver; DataBase=xxxxxxx; Server=xxxxxx; Uid=xxxx; PassWord=xxxxx;"
Conexao.Open
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Paginando Dados</title>
</head>
<style type="text/css">
.table {border: 1px solid #FF9933;}
.table td {border: 1px solid #FF9933;}
.pagNumberMark {background: #B5C905; font: 12px Arial; color: #FFFFFF;}
.pagNumber {background: #333333; font: 12px Arial; color: #FFFFFF;}
.fonteBr {font: 14px Arial; color: #FFFFFF;}
.fontePr {font: 12px Arial; color: #000000;}
.fontePontos {border: 1px solid #333333; font: 14px Arial; color: #000000; background: #FFFFFF;}
a {text-decoration: none;}
.fonte {font: 12px Arial; color: #FFFFFF;}
</style>
<body>
<table width="600" border="0" align="center" cellpadding="0" cellspacing="0">
	  <%
	Dim Rs_DADOS, PagNav, TotalPag
	Dim Anterior, Proximo, Jo, PaginaVisita
	Set Rs_DADOS = Server.CreateObject("Adodb.RecordSet")
	
	Conexao.CursorLocation = 3
	Rs_DADOS.PageSize = 15
	Rs_DADOS.Open "Select Codigo, Unidade, PFNome From Propostas Order By PFNome Desc",Conexao
	
	If Rs_DADOS.Eof Then
			Response.Write("<tr><td height=""28"" align=""center"">LISTA VAZIA</td></tr>")
	Else
		PagNav = CInt(Request.QueryString("Pages"))
		If PagNav = 0 Then : PagNav = 1 : End If
	
		Rs_DADOS.AbsolutePage = PagNav
		TotalPag = Rs_DADOS.PageCount
	%>
  <tr>
	<td><table class="table" width="600" border="0" cellspacing="0" cellpadding="0">
	  <tr class="fonteBr">
		<td width="145" height="36" align="center" bgcolor="#FFBA75"><strong>CÓDIGO</strong></td>
		<td width="334" align="center" bgcolor="#FFBA75"><strong>NOME</strong></td>
		<td width="119" align="center" bgcolor="#FFBA75"><strong>UNIDADE</strong></td>
	  </tr>
	  <% While Not Rs_DADOS.Eof And Rs_DADOS.AbsolutePage = PagNav %>
	  <tr class="fontePr">
		<td height="27" align="center"><% Response.Write(Rs_DADOS("Codigo")) %></td>
		<td align="center"><% Response.Write(Rs_DADOS("PFNome")) %></td>
		<td align="center"><% Response.Write(Rs_DADOS("Unidade")) %></td>
	  </tr>
	  <%
	  Rs_DADOS.MoveNext : Wend

	  Anterior = PagNav - 1
	  Proximo = PagNav + 1

	  If Anterior <= 0 Then : Anterior = 1 : End If
	  If Proximo > TotalPag Then : Proximo = TotalPag : End If
	  %>
	</table></td>
  </tr>
  <tr>
	<td height="28"> </td>
  </tr>
  <tr>
	<td align="center"><table width="457" height="41" border="0" cellpadding="0" cellspacing="4">
	  <tr>
		<td width="300" height="30" align="center" class="fontePr"><%
		If Request.QueryString("Pages") = "" Then
			Response.Write("Página 1 de "&TotalPag&"")
		Else
			Response.Write("Página "&Request.QueryString("Pages")&" de "&TotalPag&"")
		End If 
		%></td>
		<td width="42" align="center" class="pagNumber"><a href="?Pages=1" class="fonte"> « Início </a>
		<%
		PaginaVisita = CInt(Request.QueryString("Pages"))
		
		If PagNav > 1 Then
			Response.Write("<td width=""36"" align=""center"" "& _
			"class=""pagNumberMark""><a href=""?Pages="&Anterior&""" "& _
			"style=""font: 12px Arial; color: #FFFFFF;""> « </a></td>")
		End If
		
		If PagNav > 5 Then
			Response.Write("<td width=""28"" align=""center"" class=""fontePontos""> ... </td>")
		End If

		If PagNav <= 5 Then
			If TotalPag >= 5 Then
				For Jo = 1 To 5
					If PagNav = Jo Then
						Response.Write("<td width=""36"" align=""center"" class=""pagNumberMark""> <strong>"&Jo&"</strong> </td>")
					Else
						Response.Write("<td width=""36"" align=""center"" class=""pagNumber""> "& _
						"<a href=""?Pages="&Jo&""" class=""fonte""> "&Jo&" </a></td>")
					End If
				Next
			Else
				For Jo = 1 To TotalPag
					If PagNav = Jo Then
						Response.Write("<td width=""36"" align=""center"" class=""pagNumberMark""> <strong>"&Jo&"</strong> </td>")
					Else
						Response.Write("<td width=""36"" align=""center"" class=""pagNumber""> "& _
						"<a href=""?Pages="&Jo&""" class=""fonte""> "&Jo&" </a></td>")
					End If
				Next
			End If
		End If
		
		If PagNav > 5 Then
			PagNav = PagNav + 4
			Pg = PagNav
			MaxB = Request.QueryString("Pages") - 1
			
			If (MaxB + 1) = TotalPag Then
				For Jo = MaxB To Pg - 4
					If PaginaVisita = Jo Then
						Response.Write("<td width=""36"" align=""center"" class=""pagNumberMark""> <strong>"&Jo&"</strong> </td>")
					Else
						Response.Write("<td width=""36"" align=""center"" class=""pagNumber""> "& _
						"<a href=""?Pages="&Jo&""" class=""fonte""> "&Jo&" </a></td>")
					End If
				Next			
			ElseIf (MaxB + 2) = TotalPag Then
				For Jo = MaxB To Pg - 3
					If PaginaVisita = Jo Then
						Response.Write("<td width=""36"" align=""center"" class=""pagNumberMark""> <strong>"&Jo&"</strong> </td>")
					Else
						Response.Write("<td width=""36"" align=""center"" class=""pagNumber""> "& _
						"<a href=""?Pages="&Jo&""" class=""fonte""> "&Jo&" </a></td>")
					End If
				Next
			Else
				For Jo = (MaxB - 1) To Pg - 2
					If PaginaVisita = Jo Then
						Response.Write("<td width=""36"" align=""center"" class=""pagNumberMark""> <strong>"&Jo&"</strong> </td>")
					Else
						Response.Write("<td width=""36"" align=""center"" class=""pagNumber""> "& _
						"<a href=""?Pages="&Jo&""" class=""fonte""> "&Jo&" </a></td>")
					End If
				Next
			End If
		End If
		
		If (TotalPag <> PaginaVisita) And (TotalPag >= 5) Then
			Response.Write("<td width=""28"" align=""center"" class=""fontePontos""> ... </td>")
		End If
		%>
		<td width="34" align="center" class="pagNumberMark"><a href="?Pages=<% Response.Write(Proximo) %>" class="fonte"> » </a></td>
		<td width="42" align="center" class="pagNumber"><a href="?Pages=<% Response.Write(TotalPag) %>" class="fonte"> Final » </a></td>
	  </tr>
	</table></td>
  </tr>
	  <%
	End If
	Set Rs_DADOS = Nothing
	%>
</table>
</body>
</html>

um dos meus maiores POG's hehehe!!

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.