Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
<%option explicit%>
<%
const LIMIT_PAGE = 10
CLASS clsPaginacao
dim imagemPrimeiro, imagemAnterior, imagemProximo, imagemUltimo, classeCss, classeCssPgAtual, paginaAtual, maximoLink, totalRegistro, link, strReplacePagina, paginaInicial, pastaImagem, registroPagina
function paginar()
dim i, totalPagina, intTemp01, intTemp02, intTemp03, intTemp04, intTemp05, inicial, final, strTemp, posAux
if totalRegistro > 1 then
if maximoLink < 10 or not isNumeric(maximoLink) then maximoLink = 10
if trim(pastaImagem)<>"" then
if right(pastaImagem,1) = "/" then pastaImagem = left(pastaImagem,len(pastaImagem)-1)
imagemAnterior = pastaImagem &"/"& imagemAnterior
imagemPrimeiro = pastaImagem &"/"& imagemPrimeiro
imagemProximo = pastaImagem &"/"& imagemProximo
imagemUltimo = pastaImagem &"/"& imagemUltimo
end if
imagemAnterior = "<img src="""&imagemAnterior&""" border=""0"" width=""10"">"
imagemPrimeiro = "<img src="""&imagemPrimeiro&""" border=""0"" width=""10"">"
imagemProximo = "<img src="""&imagemProximo&""" border=""0"" width=""10"">"
imagemUltimo = "<img src="""&imagemUltimo&""" border=""0"" width=""10"">"
classeCss = iif(trim(classeCss)<>"","class="""&classeCss&"""","style=""font:12px Arial;text-decoration:none;color:#000000;""")
classeCssPgAtual = iif(trim(classeCssPgAtual)<>"","class="""&classeCssPgAtual&"""",classeCss)
if trim(strReplacePagina) = "" then strReplacePagina = "#pag#"
if not isNumeric(paginaAtual) or paginaAtual < 1 then paginaAtual = 1
if not isNumeric(paginaInicial) then paginaInicial = 1
if trim(link) = "" then link = lCase(Request.ServerVariables("SCRIPT_NAME")&"?pagina="&strReplacePagina&"")
paginaAtual = cInt(paginaAtual)
totalPagina = fix(totalRegistro / registroPagina) + iif((totalRegistro mod registroPagina) <> 0, 1, 0)
if paginaAtual > totalPagina then paginaAtual = totalPagina
intTemp01 = len(paginaAtual)
intTemp02 = intTemp01 - 1
intTemp03 = left(paginaAtual,intTemp02)
intTemp04 = right(paginaAtual,1)
intTemp05 = intTemp03 & 0
if intTemp04 <> 0 then
inicial = intTemp05 + 1
final = inicial + (maximoLink-1)
else
inicial = intTemp05 - (maximoLink-1)
final = intTemp05
end if
final = cInt(final)
inicial = cInt(inicial)
totalPagina = cInt(totalPagina)
if final > totalPagina then final = totalPagina
if paginaAtual > 1 then
strTemp = strtemp & "<a href="""& replace(link, strReplacePagina, 1) &""""&classeCss&">"&imagemPrimeiro&"</a> "
strTemp = strtemp & "<a href="""& replace(link, strReplacePagina, paginaAtual - 1) &""""&classeCss&">"&imagemAnterior&"</a> "
if paginaAtual > maximoLink then
strTemp = strtemp & "<a href="""& replace(link, strReplacePagina, inicial - 1) &""""&classeCss&">...</a> "
end if
end if
for i = inicial To final
if cInt(i) = cInt(paginaAtual) then
strTemp = strtemp & "<a href="""& replace(link, strReplacePagina, i) &""""&classeCssPgAtual&"><strong>"& i &"</strong></a> "
else
strTemp = strtemp & "<a href="""& replace(link, strReplacePagina, i) &""""&classeCss&">"& i &"</a> "
end if
next
if cInt(paginaAtual) <> cInt(totalPagina) then
posAux = left(paginaAtual,intTemp02)
if ((posAux > paginaAtual) or ((paginaAtual <= maximoLink) and (totalPagina > maximoLink))) and totalPagina > final then
strTemp = strtemp & "<a href="""& replace(link, strReplacePagina, final + 1) &""""&classeCss&">...</a> "
end if
strTemp = strtemp & "<a href="""& replace(link, strReplacePagina, paginaAtual + 1) &""""&classeCss&">"&imagemProximo&"</a> "
strTemp = strtemp & "<a href="""& replace(link, strReplacePagina, totalPagina) &""""&classeCss&">"&imagemUltimo&"</a> "
end if
paginar = strtemp
end if
end Function
END CLASS
public function iif(isTrue, TValue, FValue)
if (isTrue) then
iif = TValue
else
iif = FValue
end if
end function
'----------- Exemplo de utilização
'dim pagina, conexao, rs, sql, i,paginacao, retornoClasse
pagina = request.querystring("pagina")
if len(pagina) = 0 or not isNumeric(pagina) then
pagina = 1
else
if pagina = 0 then
pagina = 1
else
pagina = cInt(pagina)
end if
end if
dim sql, rs, i, pagina, retornoClasse, paginacao
'set conexao = Server.CreateObject("adodb.connection")
'conexao.cursorlocation=3
'Conexao.Open "Driver={MySQL ODBC 3.51 Driver}; SERVER=localhost; DATABASE=dbase; UID=root; PWD=root;OPTION=35"
sql = "select * from destinatario"
set rs = Server.CreateObject("adodb.recordset")
rs.ActiveConnection = connect
rs.Source = sql
rs.PageSize = LIMIT_PAGE
rs.CursorLocation = 3
rs.CursorType = 3
rs.LockType = 1
rs.open sql
i = 0
rs.AbsolutePage = iif(pagina > rs.pageCount, 1, pagina)
do while ((not(rs.eof)) and (i < LIMIT_PAGE))
i = i + 1
Response.Write(i&"---"&RS(2)&"<BR>")
rs.movenext
loop
set paginacao = New clsPaginacao
paginacao.pastaImagem = "imagens"
paginacao.imagemPrimeiro = "setaBackAll.gif"
paginacao.imagemProximo = "setaGo.gif"
paginacao.imagemAnterior = "setaBack.gif"
paginacao.imagemUltimo = "setaGoAll.gif"
paginacao.totalRegistro = rs.recordCount
paginacao.paginaAtual = pagina
paginacao.classeCss = "links"
paginacao.classeCssPgAtual= "paginaAtual"
paginacao.registroPagina = LIMIT_PAGE
retornoClasse = paginacao.paginar
'paginacao.pastaImagem = diretorio fisico da pasta que contem as imagens das setas [string]
'paginacao.imagemPrimeiro = imagem da seta referente a primeira página [string]
'paginacao.imagemProximo = imagem da seta referente a próxima página [string]
'paginacao.imagemAnterior = imagem da seta referente a página anterior [string]
'paginacao.imagemUltimo = imagem da seta referente a última página [string]
'paginacao.totalRegistro = total de registros a paginar [integer]
'paginacao.paginaAtual = pagina atual [integer]
'paginacao.link = query string com os parametros desejados. Padrão ?pagina=#pag# Ex.:"paginacao.asp?pagina=#pag#" [string - opcional]
'paginacao.classeCss = nome do estilo CSS dos links da paginação [string - opcional]
'paginacao.classeCssPgAtual = nome do estilo CSS do link da página atual [string - opcional]
'paginacao.registroPagina = valor do máximo de registros por página (o mesmo utilizado no recordset)
'paginacao.strReplacePagina = parametro para o replace das páginas. Padrão #pag# [string - opcional]
'paginacao.paginaInicial = página que deve exibir no primeiro carregamento. Padrão = 1 [integer - opcional]
set paginacao = nothing
Response.Write(retornoClasse)
%>
<style>
.links{
text-decoration:none;
font:12px Arial, Helvetica, sans-serif;
color:#333333;
}
.paginaAtual{
text-decoration:none;
color:#FF0000;
font:13px Arial, Helvetica, sans-serif;
text-decoration:underline;
}
</style>Carregando comentários...