Mostrar varios registros por fila con asp clásico
Código ASP clásico
- Por Programador ASP clásico /
- 16/11/2012 @ 15:38:23 /
- 1202 visitas
El siguiente código de ASP clásico permite mostrar varios registros por fila en una tabla con paginación. En este ejemplo, las páginas se muestran en incrementos de 20 y se visualizan 50 registros en una página en una tabla con 5 columnas y 10 filas.
<%
displayRecs = 50
recRange = 10
MyColNum = 5 'How many Columns do you want or how many records per row do you want?
' Check for a START parameter
If Request.QueryString("start").Count > 0 Then
startRec = Request.QueryString("start")
Session("ads_REC") = startRec
Else
startRec = Session("ads_REC")
if not isnumeric(startRec) or startRec = "" then
'reset start record counter
startRec = 1
Session("ads_REC") = startRec
End If
End If
' Open Connection to the database
set conn = Server.CreateObject("ADODB.Connection")
conn.Open xDb_Conn_Str
' Build Query
strsql = "select * from [ads]"
If dbwhere <> "" Then
strsql = strsql & " WHERE " & dbwhere
End If
if OrderBy <> "" then
strsql = strsql & " ORDER BY [" & OrderBy & "] " & Session("ads_OT")
end if
'response.write strsql
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open strsql, conn, 1, 2
totalRecs = rs.RecordCount
%>
<table border="0"><tr>
<%
'Avoid starting record > total records
if clng(startRec) > clng(totalRecs) then
startRec = totalRecs
end if
'Set the last record to display
stopRec = startRec + displayRecs - 1
'Move to first record directly for performance reason
recCount = startRec - 1
if not rs.eof then
rs.movefirst
rs.move startRec - 1
end if
recActual = 0
Do While (NOT rs.EOF) AND (recCount < stopRec)
recCount = recCount + 1
If Clng(recCount) >= Clng(startRec) Then
recActual = recActual + 1
x=x
%>
<%
x_file = rs("file")
x=x+1
%>
<td width="89">
<font size="-1"><img border="0" src="<% response.write x_file %>">
</font><%
if x= MyColNum then
Response.Write "</td></tr><tr>"
x=0 'resets x to 0 after x has reached 5 and starts over with a new row
end if
end if
rs.MoveNext
Loop
%>
</td></tr></table>
<%
if totalRecs > 0 then
' Find out if there should be Backward or Forward Buttons on the table.
If startRec = 1 Then
isPrev = False
Else
isPrev = True
PrevStart = startRec - displayRecs
If PrevStart < 1 Then PrevStart = 1 %>
<hr size="1">
<strong><a href="adslist.asp?start=<%=PrevStart%>"><font size="-1">[<< Prev]</font></a></strong>
<%
End If
' Display Page numbers
If (isPrev OR (NOT rs.EOF)) Then
If (NOT isPrev) Then Response.Write "<HR SIZE=1>"
x = 1
y = 1
dx1 = ((startRec-1)\(displayRecs*recRange))*displayRecs*recRange+1
dy1 = ((startRec-1)\(displayRecs*recRange))*recRange+1
If (dx1+displayRecs*recRange-1) > totalRecs then
dx2 = (totalRecs\displayRecs)*displayRecs+1
dy2 = (totalRecs\displayRecs)+1
Else
dx2 = dx1+displayRecs*recRange-1
dy2 = dy1+recRange-1
End If
While x <= totalrecs
If x >= dx1 and x <= dx2 Then
If Clng(startRec) = Clng(x) Then %>
<strong><font size="-1"><%=y%></font></strong>
<% Else %>
<strong><a href="adslist.asp?start=<%=x%>"><font size="-1"><%=y%></font></A></strong>
<% End If
x = x + displayRecs
y = y + 1
elseif x >= (dx1-displayRecs*recRange) and x <= (dx2+displayRecs*recRange) then
if x+recRange*displayRecs < totalRecs then %>
<strong><a href="adslist.asp?start=<%=x%>"><font size="-1"><%=y%>-<%=y+recRange-1%></font></a></strong>
<% else
ny=(totalRecs-1)\displayRecs+1
if ny = y then %>
<strong><a href="adslist.asp?start=<%=x%>"><font size="-1"><%=y%></font></a></strong>
<% else %>
<strong><a href="adslist.asp?start=<%=x%>"><font size="-1"><%=y%>-<%=ny%></font></a></strong>
<% end if
end if
x=x+recRange*displayRecs
y=y+recRange
else
x=x+recRange*displayRecs
y=y+recRange
End If
Wend
End If
' Next link
If NOT rs.EOF Then
NextStart = startRec + displayRecs
isMore = True %>
<strong><a href="adslist.asp?start=<%=NextStart%>"><font size="-1">[Next >>]</font></a></strong>
<% Else
isMore = False
End If %>
<hr size="1">
<% If stopRec > recCount Then stopRec = recCount %>
<font size="-1">Records <%= startRec %> to <%= stopRec %> of <%= totalRecs %></font>
<% Else %>
<br><br>
<font size="-1">No records found!</font>
<br><br>
<% End If %><%
' Close recordset and connection
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing %>
tags: asp recordset, asp classic recordset, registros aleatorios asp clasico, registros aleatorios sql
En esta sección encontrarás una mezcla de códigos recopilados de fuentes públicas de Internet y otros creados por ASP TEAM. Compartimos recursos útiles de buena fe para formar una base de conocimiento en el desarrollo de aplicaciones en ASP Clásico.