Ir para conteúdo

POWERED BY:

Arquivado

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

walterwac

[Resolvido] paginação asp classic

Recommended Posts

Este código fonte exibe os registro e fields da base de dados utilizando paginação. Dúvida tentei personalizar os registros e fields a serem exibidas mas não obtive sucesso alguem poderia me ajudar?

 

 

<%
Option Explicit

Const adOpenStatic   = 3
Const adLockReadOnly = 1
Const adCmdText      = &H0001

Dim CONN_STRING
CONN_STRING = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("caminho/base_de_dados")

Dim iPageSize
Dim iPageCount
Dim iPageCurrent
Dim strOrderBy
Dim strSQL
Dim objPagingConn
Dim objPagingRS
Dim iRecordsShown
Dim iFieldCount
Dim iRecordCount
Dim LoopRecordCount
Dim pageNum
Dim counter
Dim markShowPage
Dim I, J

iPageSize = 100 'define o numero de registros a serem exibidos

If Request.QueryString("page") = "" Then
	iPageCurrent = 1
Else
	iPageCurrent = CInt(Request.QueryString("page"))
End If

strSQL = "SELECT * from lista order by ID asc;"

Set objPagingConn = Server.CreateObject("ADODB.Connection")
objPagingConn.Open CONN_STRING

Set objPagingRS = Server.CreateObject("ADODB.Recordset")
objPagingRS.PageSize = iPageSize
objPagingRS.CacheSize = iPageSize
objPagingRS.Open strSQL, objPagingConn, adOpenStatic, adLockReadOnly, adCmdText

iPageCount = objPagingRS.PageCount
iFieldCount = objPagingRS.Fields.Count
iRecordCount = objPagingRS.RecordCount

If iPageCurrent > iPageCount Then iPageCurrent = iPageCount
If iPageCurrent < 1 Then iPageCurrent = 1

If iPageCount = 0 Then
	Response.Write "Registro nao encontrado!"
Else
	objPagingRS.AbsolutePage = iPageCurrent

	Dim arrDBData
	ReDim arrDBData(iFieldCount, iRecordCount)
	LoopRecordCount = 0

	'arrDBData = objPagingRS.GetRows()

	Do While LoopRecordCount < iPageSize And Not objPagingRS.EOF
		For I = 0 To objPagingRS.Fields.Count - 1
			arrDBData(I, LoopRecordCount) = objPagingRS.Fields(I)
		Next
		LoopRecordCount = LoopRecordCount + 1
		objPagingRS.MoveNext
	Loop

	objPagingRS.Close
	Set objPagingRS = Nothing
	objPagingConn.Close
	Set objPagingConn = Nothing
End If

iRecordCount = iRecordCount - 1
iFieldCount  = iFieldCount - 1
LoopRecordCount = LoopRecordCount - 1

pageNum = Round(iRecordCount/iPageSize)
If pageNum < (iRecordCount/iPageSize) Then pageNum = pageNum + 1

Response.Write "  <b>Page: "
For counter = 1 To pageNum
	if counter=iPageCurrent then
		Response.Write " <span class=activepage> "
		Response.Write counter
		Response.Write " </span>"
		markShowPage=1
	else
		Response.Write " <a onclick=exitoff() href=paginacao.asp?page="
		Response.Write counter
		Response.Write " class=listingLink>"
		Response.Write counter
		Response.Write "</a>"
	end if
Next
Response.Write "</b>"

Response.Write "  "

Response.Write "<b>"

Response.Write "<a href=paginacao.asp?page="
If iPageCurrent = 1 Then
	Response.Write pageNum
else
	Response.Write iPageCurrent-1
end if
Response.Write " class=listingLink>anterior</a>  "
Response.Write "<a href=paginacao.asp?page="
If iPageCurrent = pageNum Then
	Response.Write "1"
else
	Response.Write iPageCurrent+1
end if
Response.Write " class=listingLink>proximo</a>"

Response.Write "</b>"

%>
<p>

<table border="0">
<%
For I = 0 To LoopRecordCount
	Response.Write "<tr>" & vbCrLf
	For J = 0 To ifieldCount
		Response.Write vbTab & "<td>" & arrDBData(J, I) & "</td>" & vbCrLf
	Next ' J
	Response.Write "</tr>" & vbCrLf
Next ' I
%>
</table>


<style>

body {
font-family: Arial, Helvetica, sans-serif; 
font-size: 12px; 
}

td {
font-family: Arial, Helvetica, sans-serif; 
font-size: 12px; 
}

listingLink { 
font-family: Arial, Helvetica, sans-serif; 
font-size: 12px; 
font-weight: bold; 
color: blue; 
text-decoration:none;
margin-left:0px;
margin-right:0px;
}

a.listingLink:hover {
color:#FF0000; 
}

activepage {
color:#ffffee;
background-color: #000033;
font-weight: bold;
}
</style>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele esta gerando algum erro ???

na verdade é só você disponibilizar o nome do compao no objeto recordset, por exemplo:

 

objPagingRS("nome")

 

onde nome, é um campo da tabela lista do bd

 

faça uma pesquisa que existem ótimos artigos sobre o assunto

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não o código está funcionando perfeitamente.

 

Mas de qualquer forma, sua orientação foi muito util, pois revisei o código a fundo e obtive sucesso!

 

Obrigado!

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.