Vadför får jag inte detta att fungera?: Om du vill ha hjälp så "måste" du tala om vad som är fel och på vilken rad som felet uppstår på, annars kan vi inte hjälpa dig. Okej, jo det är så att jag har ju satt Page_Size = 5 men ändå visar den alla poster. Jag skulle skriva sidan så här. Du kanske kan använda den? Andreas: Hur gör jag om jag inte vill använda VBScript, denna sida man kommer till ska inte ha någon input i sig, utan endast vara styrd av querystrings. Ahh löste det nu, tack så mycket Andreas!DB paging och lista?
<code>
<!-- #include file="adovbs.inc" -->
<html>
<head>
<title>sökning</title>
</head>
<body>
<%
kategori = Request.QueryString("kat")
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("databas.mdb"))
%>
<%
Page_Size = 5
If Request("Page") = "" Then
Current_Page = 1
Else
Current_Page = CInt(Request("Page"))
End If
Set RecSet=Server.CreateObject("ADODB.RecordSet")
RecSet.CursorLocation = adUseClient
RecSet.PageSize = Page_Size
SQL = "SELECT * FROM prod WHERE kat = '" & kategori & "' ORDER BY prod_namn ASC"
RecSet.Open SQL, Connect, adOpenStatic, adLockReadOnly, adCmdText
If RecSet.BOF and RecSet.EOF Then
response.Write("Hittade inget!")
else
Page_Count = RecSet.PageCount
If 1 > Current_Page Then Current_Page = 1
If Current_Page > Page_Count Then Current_Page = Page_Count
RecSet.AbsolutePage = Current_Page
%>
<h3>Kategori: <%=Request.QueryString("kategori")%></h3>
<%
Do While RecSet.AbsolutePage = Current_Page And Not RecSet.EOF
%>
<%
iHorisontal = 3
Response.Write("<CENTER><TABLE>")
x = 0
Do Until RecSet.EOF
If x = iHorisontal Then
Response.Write("<TR>")
x = 0
End If
Response.Write("<TD> x = x + 1
RecSet.MoveNext
Loop
Response.Write("")
%>
<%
Response.Write "
Response.Write ""
If Current_Page = 1 Then
Response.Write "" & "Första | "
End If
If Current_Page >= 2 Then
Response.Write "Response.Write """><< Första sidan<font size=""2""> |</font> " & vbCrLf
End If
If Current_Page >= Page_Count Then
Response.Write "<font face =""verdana"" color=""silver"" Size=""2"">Nästa >></font><font size=""2""> | </font>"
End If
If Current_Page < Page_Count Then
Response.Write "Response.Write Current_Page + 1
Response.Write """>Nästa 20>" & " <font size=""2"">|</font>" & vbCrLf
End IF
If Current_Page <> 1 Then
Response.Write "Response.Write Current_Page - 1
Response.Write """>< Föregående sida<font size=""2""> |</font> " & vbCrLf
Response.Write " " & vbCrLf
End If
If Current_Page = 1 Then
Response.Write "<font face =""verdana"" color=""silver"" & size=""2"">" & "< Föregående </font><font size=""2"">|</font> "
End If
If Current_Page <> Page_Count Then
Response.Write "Response.Write Page_Count
Response.Write """>Sista sidan>>" & vbCrLf
End If
If Current_Page >= Page_Count Then
Response.Write "<font face =""verdana"" size=""2"" color=""silver"">Sista</font>" & "</font>"
End If
%>
</div></td>
</tr>
</table>
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("databas.mdb"))
Dim antal, Addera
antal = 0
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM prod WHERE kat = '" & kategori & "' ORDER BY prod_namn ASC"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
Do Until RecSet.EOF
antal = antal + 1
RecSet.MoveNext
Loop
RecSet.Close
Connect.Close
Set Connect = Nothing
%>
</div>
<table border="0" width="600" cellspacing="1">
<tr>
<td width="100%">
Sida
<b><%=Current_Page%></b> av <b><%=Page_Count%></b><br>
<br>
Du hittade <b><%= antal %></b> st produkter.
</td>
</tr>
</table>
<%
End If
%>
</code>
Svara
Sv: DB paging och lista?
//Anna-KarinSv: DB paging och lista?
Men när jag gör en vanlig list med DP paging så fungerar det..
<code>
<%
Do While RecSet.AbsolutePage = Current_Page And Not RecSet.EOF
%>
</code>Sv: DB paging och lista?
<code>
<%@ Language=VBScript %><%
Option Explicit
Dim Page
Dim PageCount
Dim SQL
Dim Index
Dim Kategori
Dim RecSet
Dim Connect
Const PageSize = 5
Const Horisontal = 3
Const adCmdText = 1
Const adUseClient = 3
Const adOpenStatic = 3
Const adLockReadOnly = 1
Response.Buffer = True
Page = Request.QueryString("Page")
Kategori = Trim(Request.QueryString("kat"))
%>
<HTML>
<HEAD>
<TITLE>sökning</TITLE>
</HEAD>
<BODY>
<CENTER>
<TABLE>
<TR>
<TD colspan="<%=Horisontal%>" align="center"><FORM method="GET">Kategori:<INPUT name="kat" value="<%=Server.HTMLEncode(Kategori)%>"><INPUT type="submit" value="sök"></FORM></TD>
</TR>
<%
If Len(Kategori) > 0 Then
SQL = "SELECT *" & vbCrLf & _
"FROM prod" & vbCrLf & _
"WHERE kat = '" & Replace(kategori, "'", "''") & "'" & vbCrLf & _
"ORDER BY prod_namn ASC"
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("databas.mdb")
Set RecSet = Server.CreateObject("ADODB.RecordSet")
RecSet.PageSize = PageSize
RecSet.CursorLocation = adUseClient
RecSet.Open SQL, Connect, adOpenStatic, adLockReadOnly, adCmdText
If RecSet.EOF Then
Response.Write "<TR><TD colspan=""" & Horisontal & """ align=""center"">Din sökning gav inga produkter som tillhör kategori: <B >" & Server.HTMLEncode(Kategori) & "</B ></TD></TR>"
Else
Response.Write "<TR><TD colspan=""" & Horisontal & """ align=""center"">Din sökning gav <B >" & RecSet.RecordCount & "</B > produkter som tillhör kategori: <B >" & Server.HTMLEncode(Kategori) & "</B >"
'**
'* Navigerar till rätt sida
'**
PageCount = RecSet.PageCount
If IsNumeric(Page) Then
Page = CInt(Page)
If Page < 1 Then
Page = 1
ElseIf Page > PageCount Then
Page = PageCount
End If
RecSet.AbsolutePage = Page
Else
Page = 1
End If
'**
'* Visar Produkter
'**
For Index = 0 To (PageSize - 1)
If (Index Mod Horisontal) = 0 Then
Response.Write "</TR><TR>"
End If
Response.Write "<TD></TD>"
RecSet.MoveNext
If RecSet.EOF Then
Exit For
End If
Next
'**
'* Visar sidnavigering
'**
Response.Write "</TR><TR><TD colspan=""" & Horisontal & """ align=""center""><FONT face=""verdana"" size=""2"">"
If Page = 1 Then
Response.Write "<FONT color=""silver""><< Första sidan</FONT>"
Response.Write " | "
Response.Write "<FONT color=""silver"">< Föregående sida</FONT>"
Else
Response.Write "<< Första sidan"
Response.Write " | "
Response.Write "< Föregående sida"
End If
Response.Write " | Sida " & Page & " av " & PageCount & " | "
If Page >= PageCount Then
Response.Write "<FONT color=""silver"">Nästa sida ></FONT>"
Response.Write " | "
Response.Write "<FONT color=""silver"">Sista sidan >></FONT>"
Else
Response.Write "Nästa sida >"
Response.Write " | "
Response.Write "Sista sidan >>"
End If
Response.Write "</TD></TR>"
End If
RecSet.Close
Set RecSet = Nothing
Connect.Close
Set Connect = Nothing
End If
%>
</TR>
</TABLE>
</CENTER>
</BODY>
</HTML>
</code>
/Mvh - Andreas HillqvistSv: DB paging och lista?
Sv: DB paging och lista?
[edit]Glömde säga hur jag gjorde det, använde mig av Andreas exempel och missade att där var querystring med så jag kunde länka till denna sida.[/edit]