Back-End

Publicidade

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
%>