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.