Consegui um sistema de paginação bem legal na web com filtro.
Pra quem precisar o código está abaixo...
Eu gostaria de saber o que tenho que fazer para criar um link, para sempre que eu clicar no título ir para a página com a notícia completa.
<% '********************************************************
'********************************************************
%>
<% Option Explicit %>
<!-- #include file = "adovbs.inc" -->
<%
Const PAGE_SIZE = 3 'quantidade de itens na página.
'Declarando as variaveis
Dim Conexao ' string para conexão
Dim rsBusca ' string do recordset
Dim rs
Dim rs1
Dim strSQL ' string SQL
Dim strSearch ' string para fixar o texto procurado
Dim iPageCurrent ' string para Pagina Corrente
Dim iPageCount ' string para contar números de paginas do recorset
Dim iRecordCount ' string do contador
Dim I ' variável de indica a página atual
Dim categoria ' variável de indica a categoria escolhida
Dim strURL ' variável que indicará o endereço do site
strURL = Request.ServerVariables("URL")
categoria = request("categoria") ' variável de retorno
Sub abre_conexao ' Criando uma conexão com o Banco de Dados
Set Conexao = Server.CreateObject("ADODB.Connection")
Conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("noticias.mdb") &";"
End sub
IF categoria = "" Then categoria = 0
If Request.QueryString("page") = "" Then ' Abertua inicial
iPageCurrent = 1
Else
iPageCurrent = CInt(Request.QueryString("page"))
End If
%>
<html>
<head>
<title>Paginação do Guardião</title>
<style>
a:hover {
text-decoration: underline
}
a {
font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; font-weight: bold; text-decoration: none
}
</style>
<!-- Javascript para onChange do ListMenu -->
<script LANGUAGE="JavaScript">
function Menu() {
document.forms.myform.submit();
}
</SCRIPT>
</head>
<body bgcolor="#ACBbbb" text="#000000" link="#000000" alink="#000000" vlink="#000000">
<!-- MONTANDO O LIST MENU COM AS CATEGORIAS -->
<FORM NAME="myform" ACTION="<%=strURL%>" METHOD=POST >
<table width="400" cellpadding="1" cellspacing="0" border="0" align="center">
<tr><td><font face="Verdana,Arial" color="#000000" size=1>Categoria:</font>
<select name="categoria" onChange="Menu();">
<option value="0" selected>(Todos)</option>
<%
Call abre_conexao ' Abrindo a conexão criada
Set rs = Server.CreateObject("ADODB.RecordSet")
' Selecionando as categorias através de uma instrução SQL
rs.Open "SELECT * FROM categorias", conexao
While not rs.eof ' Criando um Loop
IF Trim(categoria) = Trim(rs("ID")) Then
%>
<option value="<%=rs("ID")%>" selected ><%=rs("categorias")%></option>
<% Else %>
<option value="<%=rs("ID")%>"><%=rs("categorias")%></option>
<%
End IF
rs.movenext ' próximo registro
Wend
rs.close ' fechando o recordset
set rs = Nothing ' destruindo o recordset
%>
</select>
</td></tr>
</table>
</Form>
<!-- INÍCIO DA PAGINAÇÃO EM UMA TABELA -->
<%
IF categoria = 0 Then ' verifica se alguma categoria foi escolhida
strSQL = "SELECT * FROM categorias INNER JOIN noticias ON categorias.ID = noticias.categoria "
Else ' se foi determina uma condição
strSQL = "SELECT * FROM categorias INNER JOIN noticias ON categorias.ID = noticias.categoria WHERE categorias.ID = "& Trim(categoria) & " ORDER BY categoria"
End IF
' criando um Recordset referente a categoria escolhida
Set rsBusca = Server.CreateObject("ADODB.Recordset")
rsBusca.PageSize = PAGE_SIZE
rsBusca.CacheSize = PAGE_SIZE
' abre a conexão e executa o recordset
rsBusca.Open strSQL, Conexao, adOpenStatic, adLockReadOnly, adCmdText
iRecordCount = rsBusca.RecordCount
iPageCount = rsBusca.PageCount
If iRecordCount = 0 Then ' se nenhum registro for encontrado
%>
<table width="400" cellpadding="1" cellspacing="0" border="0" align="center">
<tr>
<td><font face="Verdana,Arial" color="#000000" size=1>
<%="Nenhum registro foi encontrado"%>
</font></td>
</tr>
</table>
<%
Else ' caso contrário monta a paginação
rsBusca.AbsolutePage = iPageCurrent ' determina qual página deve ser exibida
%>
<table width="400" cellpadding="1" cellspacing="0" border="0" align="center">
<tr>
<td><font face="Verdana,Arial" color="#000000" size=1>
<% 'faz as contagens dos registros encontrados
response.write iRecordCount & " registros encontrados.<br>"
response.write "Página " & iPageCurrent & " de " & iPageCount
%>
</font></td>
</tr>
<tr><td> </td></tr>
</table>
<table width="400" cellpadding="1" cellspacing="0" border="0" align="center">
<% ' novo loop, verificando a página a ser exibida
While Not rsBusca.EOF And rsBusca.AbsolutePage = iPageCurrent %>
<tr>
<td bgcolor="#0099CC"><b><font color="#000333" face="verdana" size="1"> <%
IF categoria = 0 Then
response.write rsBusca("titulo") &" ( "
response.write rsBusca("categoria") & " )"
Else
response.write rsBusca("titulo")
End IF
%> </font></b></td>
</tr>
<tr>
<td><font color="#000333" face="verdana" size="1"> <% response.write rsBusca("descricao") %>
</font></td>
</tr>
<%
rsBusca.MoveNext ' próximo registro
Wend
%>
</table>
<table width="400" cellpadding="1" cellspacing="0" border="0" align="center">
<tr><td> </td></tr>
<tr>
<td><font face="Verdana,Arial" color="#000000" size=1>
<% ' informa que página o usuário está da paginação
response.write "Páginas: "
For I = 1 To iPageCount
If I = iPageCurrent Then
response.write "[" & I & "]"
Else
' criamos um link a categoria escolhida e a
' página a ser mostrada
%>
<a href="<%= strURL %>?categoria=<%=categoria%>&page=<%= I %>"><%= I %></a>
<%
End If
Next
End If
%>
</font></td></tr>
</table>
<%
rsBusca.Close
Set rsBusca = Nothing
Conexao.Close
Set Conexao = Nothing
%>
</body>
</html>
Pergunta
nadia_xidea
Oi gente, tudo bem.
Consegui um sistema de paginação bem legal na web com filtro.
Pra quem precisar o código está abaixo...
Eu gostaria de saber o que tenho que fazer para criar um link, para sempre que eu clicar no título ir para a página com a notícia completa.
<% '******************************************************** '******************************************************** %> <% Option Explicit %> <!-- #include file = "adovbs.inc" --> <% Const PAGE_SIZE = 3 'quantidade de itens na página. 'Declarando as variaveis Dim Conexao ' string para conexão Dim rsBusca ' string do recordset Dim rs Dim rs1 Dim strSQL ' string SQL Dim strSearch ' string para fixar o texto procurado Dim iPageCurrent ' string para Pagina Corrente Dim iPageCount ' string para contar números de paginas do recorset Dim iRecordCount ' string do contador Dim I ' variável de indica a página atual Dim categoria ' variável de indica a categoria escolhida Dim strURL ' variável que indicará o endereço do site strURL = Request.ServerVariables("URL") categoria = request("categoria") ' variável de retorno Sub abre_conexao ' Criando uma conexão com o Banco de Dados Set Conexao = Server.CreateObject("ADODB.Connection") Conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("noticias.mdb") &";" End sub IF categoria = "" Then categoria = 0 If Request.QueryString("page") = "" Then ' Abertua inicial iPageCurrent = 1 Else iPageCurrent = CInt(Request.QueryString("page")) End If %> <html> <head> <title>Paginação do Guardião</title> <style> a:hover { text-decoration: underline } a { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; font-weight: bold; text-decoration: none } </style> <!-- Javascript para onChange do ListMenu --> <script LANGUAGE="JavaScript"> function Menu() { document.forms.myform.submit(); } </SCRIPT> </head> <body bgcolor="#ACBbbb" text="#000000" link="#000000" alink="#000000" vlink="#000000"> <!-- MONTANDO O LIST MENU COM AS CATEGORIAS --> <FORM NAME="myform" ACTION="<%=strURL%>" METHOD=POST > <table width="400" cellpadding="1" cellspacing="0" border="0" align="center"> <tr><td><font face="Verdana,Arial" color="#000000" size=1>Categoria:</font> <select name="categoria" onChange="Menu();"> <option value="0" selected>(Todos)</option> <% Call abre_conexao ' Abrindo a conexão criada Set rs = Server.CreateObject("ADODB.RecordSet") ' Selecionando as categorias através de uma instrução SQL rs.Open "SELECT * FROM categorias", conexao While not rs.eof ' Criando um Loop IF Trim(categoria) = Trim(rs("ID")) Then %> <option value="<%=rs("ID")%>" selected ><%=rs("categorias")%></option> <% Else %> <option value="<%=rs("ID")%>"><%=rs("categorias")%></option> <% End IF rs.movenext ' próximo registro Wend rs.close ' fechando o recordset set rs = Nothing ' destruindo o recordset %> </select> </td></tr> </table> </Form> <!-- INÍCIO DA PAGINAÇÃO EM UMA TABELA --> <% IF categoria = 0 Then ' verifica se alguma categoria foi escolhida strSQL = "SELECT * FROM categorias INNER JOIN noticias ON categorias.ID = noticias.categoria " Else ' se foi determina uma condição strSQL = "SELECT * FROM categorias INNER JOIN noticias ON categorias.ID = noticias.categoria WHERE categorias.ID = "& Trim(categoria) & " ORDER BY categoria" End IF ' criando um Recordset referente a categoria escolhida Set rsBusca = Server.CreateObject("ADODB.Recordset") rsBusca.PageSize = PAGE_SIZE rsBusca.CacheSize = PAGE_SIZE ' abre a conexão e executa o recordset rsBusca.Open strSQL, Conexao, adOpenStatic, adLockReadOnly, adCmdText iRecordCount = rsBusca.RecordCount iPageCount = rsBusca.PageCount If iRecordCount = 0 Then ' se nenhum registro for encontrado %> <table width="400" cellpadding="1" cellspacing="0" border="0" align="center"> <tr> <td><font face="Verdana,Arial" color="#000000" size=1> <%="Nenhum registro foi encontrado"%> </font></td> </tr> </table> <% Else ' caso contrário monta a paginação rsBusca.AbsolutePage = iPageCurrent ' determina qual página deve ser exibida %> <table width="400" cellpadding="1" cellspacing="0" border="0" align="center"> <tr> <td><font face="Verdana,Arial" color="#000000" size=1> <% 'faz as contagens dos registros encontrados response.write iRecordCount & " registros encontrados.<br>" response.write "Página " & iPageCurrent & " de " & iPageCount %> </font></td> </tr> <tr><td> </td></tr> </table> <table width="400" cellpadding="1" cellspacing="0" border="0" align="center"> <% ' novo loop, verificando a página a ser exibida While Not rsBusca.EOF And rsBusca.AbsolutePage = iPageCurrent %> <tr> <td bgcolor="#0099CC"><b><font color="#000333" face="verdana" size="1"> <% IF categoria = 0 Then response.write rsBusca("titulo") &" ( " response.write rsBusca("categoria") & " )" Else response.write rsBusca("titulo") End IF %> </font></b></td> </tr> <tr> <td><font color="#000333" face="verdana" size="1"> <% response.write rsBusca("descricao") %> </font></td> </tr> <% rsBusca.MoveNext ' próximo registro Wend %> </table> <table width="400" cellpadding="1" cellspacing="0" border="0" align="center"> <tr><td> </td></tr> <tr> <td><font face="Verdana,Arial" color="#000000" size=1> <% ' informa que página o usuário está da paginação response.write "Páginas: " For I = 1 To iPageCount If I = iPageCurrent Then response.write "[" & I & "]" Else ' criamos um link a categoria escolhida e a ' página a ser mostrada %> <a href="<%= strURL %>?categoria=<%=categoria%>&page=<%= I %>"><%= I %></a> <% End If Next End If %> </font></td></tr> </table> <% rsBusca.Close Set rsBusca = Nothing Conexao.Close Set Conexao = Nothing %> </body> </html>Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.