Ir para conteúdo

POWERED BY:

Arquivado

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

xanburzum

[Resolvido] tabela HTML paginável

Recommended Posts

tabela HTML paginável, basta chamar o procedimento que você deseja que a tabela, passá-la um objeto de conexão e uma seqüência de SQL, ele irá criar um conjunto de registros ADO e preenchê-lo em uma tabela HTML, que será totalmente paginável e classificável, clicando na coluna

 

'     ***********************    
    Sub createSortableList(objConn,strSQL, strDefaultSort, intPageSize, strLinkedColumnName,strLink,strTableAttributes)
            Dim RS,strSort, intCurrentPage, strPageName
            Dim strTemp, field, strMoveFirst, strMoveNext, strMovePrevious, strMoveLast
            Dim i, intTotalPages, intCurrentRecord, intTotalRecords
            i = 0
            
            strSort = request("sort")
            intCurrentPage = request("page")
            strPageName = Request.serverVariables("SCRIPT_NAME")
            
            if strSort = "" Then
                strSort = strDefaultSort
            End if
            
            if intCurrentPage = "" Then
                intCurrentPage = 1
            End if
                
            Set RS = server.CreateObject("adodb.recordset")
                
            With RS
                .CursorLocation=3
                .Open strSQL & " order by " & replace(strSort,"desc"," desc"), objConn,3 '3 is adOpenStatic
                .PageSize = cint(intPageSize)
                intTotalPages = .PageCount                            
                intCurrentRecord = .AbsolutePosition
                .AbsolutePage = intCurrentPage
                intTotalRecords = .RecordCount
            End With
            Response.Write "<TABLE " & strTableAttributes & " >" & vbcrlf
            
            'table head
            Response.Write "<TR>" & vbcrlf
            For Each field In RS.Fields 'loop através dos campos no conjunto de registros
                Response.Write "<TD align=center>" & vbcrlf
                if instr(strSort, "desc") Then 'verificar a ordem de classificação, se o seu momento de ascensão, fazer a ligação descendente
                    Response.Write "<A href=" & strPageName & "?sort="& field.name & "&page=" & intCurrentPage & ">" & field.name & "</A>" & vbcrlf
                Else
                    Response.Write "<A href=" & strPageName & "?sort="& field.name &"desc&page=" & intCurrentPage & ">" & field.name & "</A>"    & vbcrlf        
                End if    
                Response.Write "<TD>"    & vbcrlf
            Next        
            Response.Write "<TR>"
            
            'records        
            For i = intCurrentRecord To RS.PageSize 'mostrar a partir do registro atual para o pagesize
                if Not RS.eof Then
                Response.Write "<TR>" & vbcrlf
                For Each field In RS.Fields 'para cada campo no conjunto de registros
                    Response.Write "<TD align=center>" & vbcrlf
                    if lcase(strLinkedColumnName) = lcase(field.name) Then 'Se este campo é o campo "linked field" fornecer um link
                        Response.Write "<A href=" & strLink & "?sort="& strSort &"&page=" & intCurrentPage & "&" & field.name & "=" & field.value & " >" & field.value & "</A>" & vbcrlf
                    Else
                        Response.Write field.value
                    End if    
                    Response.Write "<TD>" & vbcrlf
                Next            
                Response.Write "<TR>" & vbcrlf
                RS.MoveNext
                End if
            Next
                    
            Response.Write "<TABLE>" & vbcrlf
            
            'Navegação de página
            Select Case cint(intCurrentPage)
                Case cint(intTotalPages)
                    strMoveFirst = "<A href=" & strPageName & "?sort="& strSort &"&page=1 >"& "Primeiro" &"</A>"
                    strMoveNext = ""
                    strMovePrevious = "<A href=" & strPageName & "?sort="& strSort &"&page=" & intCurrentPage - 1 & " >"& "Prev" &"</A>"                
                    strMoveLast = ""
                Case 1 'se a sua primeira página só dar links para mover seguinte e último lance
                    strMoveFirst = ""
                    strMoveNext = "<A href=" & strPageName & "?sort="& strSort &"&page=" & intCurrentPage + 1 & " >"& "Próximo" &"</A>"                
                    strMovePrevious = ""
                    strMoveLast = "<A href=" & strPageName & "?sort="& strSort &"&page=" & intTotalPages & " >"& "Último" &"</A>"
                Case Else
                    strMoveFirst = "<A href=" & strPageName & "?sort="& strSort &"&page=1 >"& "Primeiro" &"</A>"
                    strMoveNext = "<A href=" & strPageName & "?sort="& strSort &"&page=" & intCurrentPage + 1 & " >"& "Próximo" &"</A>"
                    strMovePrevious = "<A href=" & strPageName & "?sort="& strSort &"&page=" & intCurrentPage - 1 & " >"& "Prev" &"</A>"        
                    strMoveLast = "<A href=" & strPageName & "?sort="& strSort &"&page=" & intTotalPages & " >"& "Último" &"</A>"                    
            End Select
            
            With response        
                .Write strMoveFirst & " "
                .Write strMovePrevious
                .Write " " & intCurrentPage & " of " & intTotalPages & " "
                .Write strMoveNext & " "
                .Write strMoveLast
            End With        
            
            if RS.State = &H00000001 Then         
                RS.Close
            End if
            Set RS = nothing            
        End Sub

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.