Hejsa. Jeg har rigtig længe prøvet at lave paging på min side.
Desværre har jeg gjort det forkert, hver eneste lille gang, hvilket jeg er ved at være godt træt af.
Derfor vil jeg høre, om der er en der vil lave noget simpelt pageing på en default.asp som jeg har.
Den skal:
Være i dropdown hvor der står:
1
2
3
4
5
6
Og så videre.
På forhånd mange tak.
Vedlægger min default.asp:
<!-- Top START -->
<!--#include file="../indhold/include/spottekst.asp"-->
<!--#include file="../indhold/style/indstillinger.asp"-->
<title><% =Navn %></title>
<link rel="stylesheet" href="../indhold/style/stil.css">
<body oncontextmenu="return false"
ondragstart="return false"
onselectstart="return false">
<!-- Top SLUT -->
<!-- Start START -->
Artikler:<hr class="input">
<!-- Start SLUT -->
<!-- Database START -->
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../database/database.mdb")
strSQL = "select * from artikler ORDER BY id DESC"
set rs = Conn.execute(strSQL)
if rs.EOF then
Response.write "Databasen er tom eller der er sket en fejl."
else
Do Until rs.EOF
%>
<!-- Database SLUT -->
<!-- Indhold START -->
<table border="0" width="100%" id="table1" cellspacing="0" cellpadding="0">
<tr>
<td width="52" valign="top">
<img border="0" src="billeder/<%=RS("billede")%>"></td>
<td valign="top"><%=RS("overskrift")%>:
Skrevet af: <%=RS("forfatter")%> den <%=RS("dato")%>.
<% Response.Write KlipIndhold(RS("indhold"), 100, "...") %> <a href="vis_artikel.asp?id=<%=RS("id")%>">Læs hele artiklen</a>.</td>
</tr>
</table>
<!-- Indhold SLUT -->
<!-- Databaselukning START -->
<%RS.MoveNext
Loop
end if
Conn.Close
Set Conn = Nothing%>
<!-- Databaselukning SLUT -->
/Jobbe \\"JolleR\\" Hansen
Hej,
Her er et eksempel på hvordan du kan lave en paging.
Det hele ligger sådan set i din SQL sætning når du henter data.
Jeg har lavet det sådan at du kan ændre antallet af artikler per side (variablen antal_per_side).
Jeg er ikke 100% sikker på at det vil fungere korrekt da jeg har skrevet det direkte ind her og jeg har heller ikke fået testet det.
Kig på det og sig til hvis der er noget der ikke virker eller hvis du vil ha noget forklaret.
<!-- Top START -->
<!--#include file="../indhold/include/spottekst.asp"-->
<!--#include file="../indhold/style/indstillinger.asp"-->
<%
Function HentSide(Conn, antal_per_side, side)
Dim strSQL
strSQL = "SELECT TOP " & CStr(antal_per_side)
strSQL = strSQL & " * FROM artikler WHERE id IN ("
strSQL = strSQL & "SELECT TOP " & CStr(CLng(antal_per_side)*CLng(side))
strSQL = strSQL & " * FROM artikler ORDER BY id ASC) "
strSQL = strSQL & "ORDER BY id DESC"
HentSide = Conn.execute(strSQL)
End Function
Function HentAntalSider(Conn, antal_per_side)
Dim strSQL
Dim rstData
strSQL = "SELECT COUNT(*) AS Antal "
Set rstData = Conn.execute(strSQL)
If (Not rstData.EOF) AND (Not rstData.BOF) Then
HentAntalSide = CLng(rstData("Antal")) / CLng(antal_per_side)
Else
HentAntalSide = 0
End If
End Function
%>
<title><% =Navn %></title>
<link rel="stylesheet" href="../indhold/style/stil.css">
<body oncontextmenu="return false"
ondragstart="return false"
onselectstart="return false">
<!-- Top SLUT -->
<!-- Start START -->
[b]Artikler:[/b]<hr class="input">
<!-- Start SLUT -->
<!-- Database START -->
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../database/database.mdb")
// Hent antal (5 artiker per side) pagings som skal vises
Dim side
Dim antal_per_side
dim antal_sider
' Angiv et andet tal hvis du vil ha' mere end 5 artikler per side.
antal_per_side = 5
' Hent antallet af sider som man kan vælge i mellem.
antal_sider = HentAntalSider(Conn, antal_per_side)
' Hent den aktuelle side vi er på (hvis intet er angiver bruger vi 0).
side = CLng("0" & Request.QueryString("side"))
// Hent den aktuelle side
set rs = HentSide(Conn, antal_per_side, side)
'strSQL = "select * from artikler ORDER BY id DESC"
'set rs = Conn.execute(strSQL)
if rs.EOF then
Response.write "Databasen er tom eller der er sket en fejl."
else
Do Until rs.EOF
%>
<!-- Database SLUT -->
<!-- Indhold START -->
<table border="0" width="100%" id="table1" cellspacing="0" cellpadding="0">
<tr>
<td width="52" valign="top">
<img border="0" src="billeder/<%=RS("billede")%>"></td>
<td valign="top">[b]<%=RS("overskrift")%>:[/b]
[b]Skrevet af:[/b] <%=RS("forfatter")%> [b]den[/b] <%=RS("dato")%>.
<% Response.Write KlipIndhold(RS("indhold"), 100, "...") %> <a href="vis_artikel.asp?id=<%=RS("id")%>">[b]Læs hele artiklen[/b]</a>.</td>
</tr>
</table>
<!-- Indhold SLUT -->
<!-- Databaselukning START -->
<%RS.MoveNext
Loop
' Opbyg dropdown listen med de sider som der skal kunne vælges
%>
<table border="0" width="100%" id="t2" cellspacing="0" cellpadding="0">
<tr>
<td align="center">Side
<select name="page_sel" onchange="javascript:document.location = '?side='+this.options[this.selectIndex];">
<%
Dim i
For i = 1 To antal_side
%>
<option value="<%=i%>"><%=i%></option>
<%
Next i
%>
</td>
</tr>
</table>
<%
end if
Conn.Close
Set Conn = Nothing%>
<!-- Databaselukning SLUT -->
/Michael.