webForumDet fria alternativet

Problem med paging

2 svar · 85 visningar · startad av juventus1

juventus1Medlem sedan dec. 2000399 inlägg
#1

Jag har en sida som ska visa 6 produkter. Jag har en tabell (html) med 3 rader och 2 kolumner. Ett varv i utskriftsloopen innebär att två produktnamn skrivs ut. Det är här problemet kommer. Som ni ser i koden har jag satt pagesize till 3 pga att jag flyttar mig två poster framåt i varje loop. Men när jag går till sida 2 kommer 3 av produkterna från sida 1 att visas där också. Ändrar jag pagesize till 6 får jag en massa produkter på samma sida och layouten blir helt förstörd. Nu undrar jag hur jag ska kunna göra för att behålla layouten och visa 6 produkter/sida. Hoppas ni förstår problemet. Om inte kan ni uppleva det på http://www14.brinkster.com/juventus1/sigma/produkter.asp
Så här ser koden ut på sidan:

<%
option explicit

dim oConnect,oRs,strYear,strSql,intPageCount,intRecordCount,intPage,intRecord,intStart,intFinish,strX
dim intI,intAntal,intRest,strLankar

if request.querystring("nav") = "" then
	intPage = 1
else
	intPage = Cint(request.querystring("nav"))
end if

Set oConnect = Server.CreateObject("ADODB.Connection")
oConnect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\wwwroot\sigma\databaser\produkter.mdb"

strSql = "SELECT * FROM Produkter ORDER BY ProduktID"
Set oRs = Server.CreateObject("ADODB.Recordset")

oRs.CursorLocation = 3	'adUseClient
oRs.CursorType = 3		'adOpenStatic
oRs.ActiveConnection = oConnect
oRs.Open strSql

oRs.PageSize = 3
oRs.CacheSize = oRs.PageSize
intPageCount = oRs.PageCount
intRecordCount = oRs.RecordCount

If CInt(intPage) > CInt(intPageCount) Then intPage = intPageCount

If CInt(intPage) <= 0 Then intPage = 1

If intRecordCount > 0 Then
	oRs.AbsolutePage = intPage
	intStart = oRs.AbsolutePosition

	If CInt(intPage) = CInt(intPageCount) Then
		intFinish = intRecordCount
	Else
		intFinish = intStart + (oRs.PageSize - 1)
	End if
End If

'***Skapar sifferlänkarna***'

intRest = intRecordCount mod 6
intAntal = (intRecordCount - intRest) / 6

for intI = 1 to intAntal + 1

if intI = intPage then
	strLankar = strLankar & "<a href=""produkter.asp?nav="&intI&"""><b>"&intI&"</b></a>  "
else
	strLankar = strLankar & "<a href=""produkter.asp?nav="&intI&""">"&intI&"</a>  "
end if

next

'***Slut***'
%>
<html>
<head>
<title></title>
<link rel="stylesheet" href="style.css">
</head>
<body bgcolor="#f5f5f5" topmargin="0">
<br>
<table width="500" border="1" cellspacing="0" cellpadding="1" align="center" bordercolor="#CCCCCC">
  <tr>
	<td align="center" width="200">
      <div align="center">
		<% if intPage < (intPageCount - 1) then %>
		<span class="produktinfo"><a href="produkter.asp?nav=<% =intPage + 1 %>">Nästa sida</a></span>
		<% else %>
		<span class="produktinfo">Nästa sida</span>
		<% end if %>
		</div>
    </td>
	<td align="center" width="300"> 
      <div align="center"><span class="produktinfo">[  <% =strLankar %>]</span></div>
    </td>
</tr>
</table>
<br>
<table width="500" border="0" cellspacing="0" cellpadding="0" align="center">
<%
strX = 1

For intRecord = 1 to oRs.PageSize
%>
  <tr>
    <td align="center" width="244" height="120"><span class="produktinfofet"><a href="produktdetaljer.asp?produktid=<% =oRs("ProduktID") %>&nav=<% =intPage %>"><% =oRs("Produktnamn") %></a></span></td>
    <td width="1" height="120"><img src="bilder/1.gif" height="100%" width="1"></td>
	<% oRs.movenext %>
    <td align="center" width="244" height="120"><span class="produktinfofet"><a href="produktdetaljer.asp?produktid=<% =oRs("ProduktID") %>&nav=<% =intPage %>"><% =oRs("Produktnamn") %></a></span></td>
  </tr>
<% if intRecord <> 3 then %>
  <tr>
    <td colspan="3" height="1"><img src="bilder/1.gif" height="1" width="100%"></td>
  </tr>
<%
end if

oRs.movenext

if oRs.EOF then exit for

Next %>
</table>
<br>
<table width="500" border="1" cellspacing="0" cellpadding="1" align="center" bordercolor="#CCCCCC">
  <tr>
	<td align="center" width="200" valign="top">
      <div align="center">
		<% if intPage > 1 then %>
		<span class="produktinfo"><a href="produkter.asp?nav=<% =intPage - 1 %>">Föregående sida</a></span>
		<% else %>
		<span class="produktinfo">Föregående sida</span>
		<% end if %>
	</div>
    </td>
	<td align="center" width="300"> 
      <div align="center"><span class="produktinfo">[  <% =strLankar %>]</span></div>
    </td>
</tr>
</table>
</body>
</html>
<%
oRs.close
set oRs = nothing
oConnect.Close
set oConnect = nothing
%>

mvh André

[Redigerat av juventus1 den 19 feb 2001]

[Redigerat av juventus1 den 19 feb 2001]

juventus1Medlem sedan dec. 2000399 inlägg
#2

Nu lyckades jag fixa det... Så fort man frågar kommer man på det själv :)

juventus1Medlem sedan dec. 2000399 inlägg
#3

Nu lyckades jag fixa det... Så fort man frågar kommer man på det själv :)

124 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)