Classe para navegar em um recordset paginado

A classe NaviPage 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:

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:

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áginaqs = ""
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 widthp.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" recordsetp.PageCount = 3
´conjunto da QueryString usada pelo recordset para gerar filasp.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 browserp.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:

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 que 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 & “”">[&lt;&lt;&nbsp;back]</a>”

             else

                    strTempNavL = strTempNavL & “&nbsp;”

             End If

             If clng(CurrentPage) < clng(PageCount) Then

                    strTempNavR = strTempNavR & “<a href=”"” & PageUrl & “?page=” & _

                           clng(CurrentPage) + 1 & “&” & QueryString & _

                           “”" style=”"” & LinkStyle & “”">[next&nbsp;&gt;&gt;]</a>”

             else

                    strTempNavR = strTempNavR & “&nbsp;”

             End If

             iEverySinglePage = 1

             Do Until iEverySinglePage > PageCount

                    if iEverySinglePage = clng(CurrentPage) then

                           strTempNavC = strTempNavC & “[<span style=""" & _

                                  SelectedPageStyle & """>" & iEverySinglePage & _

                                  "</span>]&nbsp;&nbsp;”

                    else

                           strTempNavC = strTempNavC & “<a style=”"” & LinkStyle & _

                                  “”" href=”"” & PageUrl & “?page=” & _

                                  iEverySinglePage & “&” & QueryString & “”">” & _

                                  iEverySinglePage & “</a>&nbsp;&nbsp;”

                    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

%>

Escrito por X@nBuRzUm on março 13, 2010. Arquivado em ASP.net, Banco de Dados, CSS, Dreamweaver, Geral, Javascript, Programação, Usabilidade. Você pode seguir as respostas a esse artigo pelo RSS 2.0. Você pode deixar respostas para esse artigo

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>