Jeg vil til hver en tid anbefale at du placerer defintioner af funktioner/subs i toppen af dit script, så det ikke ligger rundt omkring i siden. Derfor vil jeg foreslå at du strukturerer din kode således (i øvrigt nævnte jeg noget med at placere page-selectoren udenfor tabellen ;)):
<%@ language="vbscript" %>
<%
function reverseOrder(strOrder)
if lcase(strOrder) = "asc" then
reverseOrder = "desc"
else
reverseOrder = "asc"
end if
end function
sub pageSelector(intPageCount)
dim intNum
If Clng(strPage) > 1 Then
Response.Write "<a href=""?page=" & int(strPage) - 1
Response.Write "&kategori=" & strKategori
Response.Write "&sortcol=" & strSortColumn
Response.Write "&sortorder=" & strSortOrder
Response.Write """><<</a> "
Else
Response.Write "<<"
End If
If Clng(strPage) < Clng(intPageCount) Then
Response.Write "<a href=""?page=" & int(strPage) + 1
Response.Write "&kategori=" & strKategori
Response.Write "&sortcol=" & strSortColumn
Response.Write "&sortorder=" & strSortOrder
Response.Write """>>></a> "
Else
Response.Write ">>"
End If
Response.Write " Gå til side "
For intNum = 1 To intPageCount
Response.Write "<a href=""?page=" & intNum
Response.Write "&kategori=" & strKategori
Response.Write "&sortcol=" & strSortColumn
Response.Write "&sortorder=" & strSortOrder
Response.Write """>" & intNum & "</a> "
Next
end sub
strSortColumn = Request.QueryString("sortcol") & ""
strSortOrder = Request.QueryString("sortorder") & ""
strKategori = Request.QueryString("kategori") & ""
strPage = Request.QueryString("page") & ""
' Sæt standardværdier, hvis der mangler informationer
if strSortColumn = "" then
strSortColumn = "dato"
end if
if strSortOrder = "" then
strSortOrder = "asc"
end if
if strKategori = "" then
strKategori = "A"
end if
if strPage = "" then
strPage = "1"
end if
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd"> <html>
<head>
<title>pagingEx1</title>
</head>
<body>
<%
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../db/musikhits.mdb")
set conn = Server.CreateObject("ADODB.Connection")
conn.Open strDSN
letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ"
for i = 1 to len(letters)
response.write "<a href=""?page=" & strPage & "&kategori=" & mid(letters,i,1)
if strSortColumn <> "" then
response.write "&sortcol=" & strSortColumn
end if
if strSortOrder <> "" then
response.write "&sortorder=" & strSortOrder
end if
response.write """>" & mid(letters,i,1) & "</a>"
if i < len(letters) then
response.write " - "
end if
next
strSQL = "SELECT * FROM dancetrancetop60september2005 WHERE LEFT(kunstner,1) = '" & strKategori &"' ORDER BY " & strSortColumn & " " & strSortOrder
rs.Open strSQL, Conn, 1
If Not (rs.BOF Or rs.EOF) Then
rs.PageSize = 10
rs.AbsolutePage = int(strPage)
intRecCount = rs.PageSize
intPageCount = rs.PageCount
pageSelector intPageCount
%>
<table>
<tr>
<td width="38">
<a href="?page=<%=strPage%>&kategori=<%=strKategori%>&sortcol=dato&sortorder=<%=reverseOrder(strSortOrder)%>">
Dato</a></td>
<td width="21">
<a href="?page=<%=strPage%>&kategori=<%=strKategori%>&sortcol=nr&sortorder=<%=reverseOrder(strSortOrder)%>">
Nr</a></td>
<td>
<a href="?page=<%=strPage%>&kategori=<%=strKategori%>&sortcol=kunstner&sortorder=<%=reverseOrder(strSortOrder)%>">
Kunstner</a></td>
<td>
<a href="?page=<%=strPage%>&kategori=<%=strKategori%>&sortcol=track&sortorder=<%=reverseOrder(strSortOrder)%>">
Track</a></td>
</tr>
<%
do while not rs.EOF and intRecCount > 0
%>
<tr>
<td><%=rs("dato")%></td>
<td><%=rs("nr")%></td>
<td><%=rs("kunstner")%></td>
<td><%=rs("track")%></td>
</tr>
<%
intRecCount = intRecCount - 1
rs.Movenext
Loop
%>
</table>
<%
pageSelector intPageCount
End if
rs.close
set rs = nothing
%>
</body>
</html>
Jeg har set mig nødsaget til at rykke selve tabellen ind i betingelsen med not (rs.eof or rs.bof), hvilket betyder at der ikke vil blive vist noget på siden hvis resultatet er tomt. Det kan vi lige tage bagefter, nu vil vi gerne se dette fungere først :)