Ir para conteúdo

POWERED BY:

Arquivado

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

Patrique

Paginacao quase igual ao digg hehehehhe

Recommended Posts

E ai moçado, vou passar aqui para vocês uma paginação parecida com o digg, até o css eu quiz deixar igual eu tive que fazer para uma extranet no qual tinha muitos registros e para este caso esta páginação foi perfeita por isso decidi disponibilizar com vocês.

 

Imagem Postada

crie um banco de dados chamado "dados.mdb" crie uma tabela chamada conteudo dentro desta tabela crie 3 tabelas, o primeiro será a tabela id neste caso com numeração automática, a segunda tabela de dados você coloca de "conteudo" nesta tabela é aonde vai entrar o conteúdo em texto, e por fim crie uma tabela chamada "data" coloque a propriedade deste campo como "Data/Hora"

 

Até ae beleza, você criou o banco de dados, salve ele em alguma pasta, agora é a vez de criar o css, neste caso crie um arquivo .css com o nome de "estilo.css" salve-o na mesma pasta aonde você salvou o BD, agora abra-o e insira o code abaixo

 

body {
	font-family: Lucida Grande, Arial, Sans-serif;
	font-size: 16px;
	line-height: 1.5em;
	color: #111111;
}

	div.paginacao {
		padding: 3px;
		margin: 3px;
		text-align:center;
	}
	
	div.paginacao a {
		padding: 2px 5px 2px 5px;
		margin: 2px;
		border: 1px solid #AAAADD;
		
		text-decoration: none;
		color: #000099;
	}
	div.paginacao a:hover, div.digg a:active {
		border: 1px solid #000099;

		color: #000;
	}
	div.paginacao span.atual {
		padding: 2px 5px 2px 5px;
		margin: 2px;
		border: 1px solid #000099;
		
		font-weight: bold;
		background-color: #000099;
		color: #FFF;
	}
	div.paginacao span.desabilitado {
		padding: 2px 5px 2px 5px;
		margin: 2px;
		border: 1px solid #EEE;
	
		color: #DDD;
	}

Pronto agora crie um arquivo chamado index.asp e salve o seguinte code nele

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>paginacao</title>
</head>

<body>
<link rel="stylesheet" href="estilo.css" media="all" />

<%
Response.Charset="ISO-8859-1"

Const BOTAO_Primeiro = "<<"
Const BOTAO_Anterior = "anterior"
Const BOTAO_Proximo = "próxima"
Const BOTAO_Ultimo = ">>"
Const PATAlign = "Center"
Const PATWidth = "100%"

Class PatPagCla
Private contapage,conexao,rs,sql,pagina,surl,paginatual,totalpaginas,totalregistros,url

Public Property Let PageSize(PATPageSize)
 If IsNumeric(PATPageSize) Then
  pagina = CLng(PATPageSize)
 Else
  PATErro = PATErro & "ocorreu um erro."
  MostrarErro()
 End If
End Property

Public Property Get PageSize
 If pagina = "" or (Not(IsNumeric(pagina))) Then
  PageSize = 10
 Else
  PageSize = pagina
 End If
End Property

Public Property Get GetRs()
 Set rs = Server.createobject("adodb.recordset")
 rs.PageSize = PageSize
 rs.Open sql,conexao,1,1
 If Not(rs.eof and rs.BOF) Then
  If paginatual>rs.PageCount Then
   paginatual = rs.PageCount
  End If
  rs.AbsolutePage = paginatual
 End If
 Set GetRs = rs
End Property

Public Property Let GetConn(OBJ_Conn)
 Set conexao = OBJ_Conn
End Property

Public Property Let GetSQL(PATSql)
 sql = PATSql
End Property


Private Sub Class_Initialize
 pagina = 10

 If Request("pagina") = "" Then
  paginatual = 1
 ElseIf Not(IsNumeric(Request("pagina"))) Then
  paginatual = 1
 ElseIf CInt(Trim(Request("pagina")))<1 Then
  paginatual = 1
 Else
  paginatual = CInt(Trim(Request("pagina")))
 End If
End Sub

Public Sub MostrarPagina()
 Dim PATTmp
 surl = GetUrl()
 totalregistros = rs.RecordCount
 If totalregistros <=0 Then
  PATErro = PATErro & "ocorreu um erro"
  Call MostrarErro()
 End If
 If totalregistros = "" then
	 totalpaginas = 1
 Else
  If totalregistros mod PageSize = 0 Then
   totalpaginas = CLng(totalregistros / pagina * -1)*-1
  Else
   totalpaginas = CLng(totalregistros / pagina * -1)*-1+1
  End If
 End If
 If paginatual>totalpaginas Then
  paginatual = totalpaginas
 End If
 
 response.write "<div class=""paginacao"">"
 PATTmp = MostrarPrimeiroPrv
 response.write PATTmp
 PATTmp = MostrarNumBOTAO
 response.write PATTmp
 PATTmp = MostrarProximoUltimo
 response.write PATTmp
 PATTmp = MostrarPaginaInfo
 response.write PATTmp
 response.write "</div>"
End Sub

Private Function MostrarPrimeiroPrv()
 Dim PATTmp,PATPrvPage
 If paginatual = 1 Then
  PATTmp = "<span class=""desabilitado"">" & BOTAO_Primeiro & "</span>  <span class=""desabilitado"">" & BOTAO_Anterior & "</span> "
 Else
  PATPrvPage = paginatual-1
  PATTmp = "<a href="""&surl & "1" & """>" & BOTAO_Primeiro&"</a> <a href=""" & surl & CStr(PATPrvPage) & """>" & BOTAO_Anterior&"</a> "
 End If
 MostrarPrimeiroPrv = PATTmp
End Function

Private Function MostrarProximoUltimo()
 Dim PATTmp,PATProximopage
 If paginatual>=totalpaginas Then
  PATTmp = "<span class=""desabilitado"">" & BOTAO_Proximo & "</span>  <span class=""desabilitado"">" & BOTAO_Ultimo & "</span> "
 Else
  PATProximoPage = paginatual+1
  PATTmp = "<a href=""" & surl & CStr(PATProximopage) & """>" & BOTAO_Proximo & "</a> <a href="""& surl & CStr(totalpaginas) & """>" &  BOTAO_Ultimo&"</a>"
 End If
 MostrarProximoUltimo = PATTmp
End Function

Private Function MostrarNumBOTAO()
 Dim i,PATTmp
 if totalpaginas<10 or paginatual<10 then
 For i = 1 to 10
 if i = paginatual then
  PATTmp = PATTmp & "<span class=""atual"">"&i&"</span> "
 else
  PATTmp = PATTmp & "<a href=""" & surl & CStr(i) & """>"&i&"</a> "
 end if
 Next
 elseif paginatual+5>totalpaginas then
 For i = paginatual-5 to totalpaginas
 if i = paginatual then
  PATTmp = PATTmp & "<span class=""atual"">"&i&"</span> "
 else
  PATTmp = PATTmp & "<a href=""" & surl & CStr(i) & """>"&i&"</a> "
 end if
 Next
 else
 For i = paginatual-5 to paginatual+5
 if i = paginatual then
  PATTmp = PATTmp & "<span class=""atual"">"&i&"</span> "
 else
  PATTmp = PATTmp & "<a href=""" & surl & CStr(i) & """>"&i&"</a> "
 end if
 Next
 end if
 MostrarNumBOTAO = PATTmp
End Function

Private Function MostrarPaginaInfo()
 Dim PATTmp
 PATTmp = "<br /><br />Página: "&paginatual&" de "&totalpaginas&" - Total "&totalregistros&" registros "&pagina&", artigos / página<br /><br />"
 MostrarPaginaInfo = PATTmp
End Function

Private Function GetURL()
 Dim strurl,url,i,j,search_str,result_url
 search_str = "pagina="
 strurl = Request.ServerVariables("URL")
 Strurl = split(strurl,"/")
 i = UBound(strurl,1)
 url = strurl(i)
 PATparams = Trim(Request.ServerVariables("QUERY_STRING"))
 If PATparams = "" Then
  result_url = url & "?pagina="
 Else
  If InstrRev(PATparams,search_str) = 0 Then
   result_url = url & "?" & PATparams &"&pagina="
  Else
   j = InstrRev(PATparams,search_str)-2
   If j = -1 Then
	result_url = url & "?pagina="
   Else
	PATparams = Left(PATparams,j)
	result_url = url & "?" & PATparams &"&pagina="
   End If
  End If
 End If
 GetURL = result_url
End Function

Private Sub Class_Terminate
 rs.close
 Set rs = nothing
End Sub

Private Sub MostrarErro()
 If PATErro <> "" Then
  Response.Write("" & PATErro & "")
  Response.End
 End If
End Sub
End class


set conn = server.CreateObject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq=" & server.Mappath("dados.mdb")

Set PatPags = New PatPagCla
PatPags.GetConn = conn
PatPags.GetSql = "select * from [conteudo] order by id asc"
PatPags.PageSize = 5
set Rs = PatPags.GetRs()
PatPags.MostrarPagina()

Response.Write("<br/>")
for i=1 to PatPags.PageSize
	if not rs.eof then
		response.write rs("id") & " " & left(rs(1),20) & " " & rs("data") & "<br/>"
		rs.movenext
	else
		 exit for
	end if
next
%>
</body>
</html>

Pronto bem simples e pratico

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

hheheh é para os preguiçosos que não querem fazer seguindo o tópico, mais sim querem na mãozinha dai com esta senha eles são forçados a falar que são preguiçosos hehhehheheh

Compartilhar este post


Link para o post
Compartilhar em outros sites

hheheh é para os preguiçosos que não querem fazer seguindo o tópico, mais sim querem na mãozinha dai com esta senha eles são forçados a falar que são preguiçosos hehhehheheh

Acertou.

rsrs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gandalf - The White, o link foi removido mas pode fazer seguindo os códigos do tópico

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.