A classe NaviPage cria um sistema de paginação automático, com “página anterior” e “próxima página”,
para navegar um recordset paginado.
A classe oferece propriedades e métodos que são utilizados para construir o menu de navegação. Por exemplo, se o seu recordset é de 5 páginas, uma navegação NaviPage como esta será exibida:
[Anterior] [1] 2 3 4 5 [Próxima]
As propriedades e os métodos propostos neste código são:
Propriedades:
CurrentPage
Opcional. Obtém ou define a página atual.
PageCount
Necessário. O número de páginas para ser exibido.
QueryString
Opcional. Uma QueryString é necessária para ser transmitida entre as páginas. Querystrings devem ter este formato:
Dim qs
qs = qs & "& s =" & Server.UrlEncode (request ( "s"))
qs = qs & "& t =" & Server.UrlEncode (request ( "t"))
qs = qs & "& u =" & Server.UrlEncode (request ( "u"))
Obj.Querystring = qs
PageUrl
Necessário. A URL onde todos os links de navegação são exibidos.
LinkStyle
Opcional. Estilo CSS, código para as tags âncora de links criados pela classe.
SelectedPageStyle
Opcional. Estilo CSS para a página selecionada.
Width
Opcional. O numérico ou percentual de toda a largura do menu. Exemplos de valores válidos são “100%”, 500, 563, “55%”, etc.
Métodos:
RenderMenu
Necessário.Página gerada, menu de navegação do browser.
Este método deve ser chamado depois que todas as propriedades foram ajustadas.
sintaxe:
Set object = New NaviPage
exemplo:
Dim p, qs
´construir QueryString para passar de página em página
qs = ""
qs = qs & "&s=" & Server.UrlEncode(request("s"))
qs = qs & "&t=" & Server.UrlEncode(request("t"))
qs = qs & "&u=" & Server.UrlEncode(request("u"))
´cria nav menu
Set p = New NaviPage
´set width
p.Width = "100%"
´conjunto estilo da página Links
p.LinkStyle = "font-family:helvetica;font-size:12pt;"
´estilo de página selecionada
p.SelectedPageStyle = "font-family:helvetica;font-size:12pt;font-weight:bold;"
´número total de páginas "paginável" recordset
p.PageCount = 3
´conjunto da QueryString usada pelo recordset para gerar filas
p.QueryString = qs
´definir a página onde cada página link deve apontar
p.PageUrl = Request.ServerVariables("SCRIPT_NAME")
´response.write o menu para o browser
p.RenderMenu
´liberar memória
Set p = Nothing
´impressões: [1] 2 3 [Próxima>>]
´Isso é exatamente a mesma classe qeu uso para fazer a paginação
código:
<%
Class NaviPage
Private Sub Class_Initialize()
CurrentPage = 1
PageCount = 1
QueryString = ""
PageUrl = Request.ServerVariables("SCRIPT_NAME")
LinkStyle = "font-family:helvetica;font-size:10pt;"
SelectedPageStyle = "font-family:helvetica;font-size:12pt;font-weight:bold;"
Width = "100%"
End Sub
Public Property Get CurrentPage
dim p
on error resume next
p = clng(Request("Page"))
if err.number <> 0 then p = 1
if p < 1 then p = 1
CurrentPage = p
End Property
Public Property Let CurrentPage(byval page)
CurrentPage = page
End Property
Public PageCount
Public QueryString
Public PageUrl
Public LinkStyle
Public SelectedPageStyle
Public Width
Public Sub RenderMenu()
Dim strTempNavL, strTempNavR, strTempNavC, iEverySinglePage
´input validação
if clng(PageCount) < 1 Then
PageCount = 1
end if
If clng(CurrentPage) > clng(PageCount) Then
CurrentPage = PageCount
End If
If clng(CurrentPage) < 1 Then
CurrentPage = 1
End If
if Len(Trim(QueryString)) > 0 Then
if Left(QueryString, 1) = "&" Then
QueryString = Mid(QueryString, 2)
End If
End If
´criação menu
If clng(CurrentPage) <> 1 Then
strTempNavL = strTempNavL & "<a href=""" & PageUrl & "?page=" & _
clng(CurrentPage) - 1 & "&" & QueryString & _
""" style=""" & LinkStyle & """>[<< back]</a>"
else
strTempNavL = strTempNavL & " "
End If
If clng(CurrentPage) < clng(PageCount) Then
strTempNavR = strTempNavR & "<a href=""" & PageUrl & "?page=" & _
clng(CurrentPage) + 1 & "&" & QueryString & _
""" style=""" & LinkStyle & """>[next >>]</a>"
else
strTempNavR = strTempNavR & " "
End If
iEverySinglePage = 1
Do Until iEverySinglePage > PageCount
if iEverySinglePage = clng(CurrentPage) then
strTempNavC = strTempNavC & "[<span style=""" & _
SelectedPageStyle & """>" & iEverySinglePage & _
"</span>] "
else
strTempNavC = strTempNavC & "<a style=""" & LinkStyle & _
""" href=""" & PageUrl & "?page=" & _
iEverySinglePage & "&" & QueryString & """>" & _
iEverySinglePage & "</a> "
end if
iEverySinglePage = iEverySinglePage + 1
LOOP
´render nav menu
response.write "<table width=""" & width & """>" & vbCrLf
response.write "<tr>" & vbCrLf
response.write "<td valign=top align=left width=""20%"">" & vbCrLf
response.write strTempNavL & vbCrLf
response.write "</td>" & vbCrLf
response.write "<td valign=top align=center width=""60%"">" & vbCrLf
response.write strTempNavC & vbCrLf
response.write "</td>" & vbCrLf
response.write "<td valign=top align=right width=""20%"">" & vbCrLf
response.write strTempNavR & vbCrLf
response.write "</td>" & vbCrLf
response.write "</tr>" & vbCrLf
response.write "</table>" & vbCrLf
End Sub
End Class
%>