Mostrar varios registros por fila con asp clásico

Código ASP clásico

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.