---
title: "Paging prob"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/14098-paging-prob"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "ConnyFox"
published: "2002-01-23T20:21:00.000Z"
updated: "2002-01-30T19:28:00.000Z"
replies: 25
views: 444
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/14098-paging-prob"
---

# Paging prob

_Sida 1 av 2._

## #1 — ConnyFox, 2002-01-23T20:21Z

Halo! Har sökt och kollat på FAQ guiden för Paging men förstår helt enkelt inte hur jag ska få det att funka ihop med min kod, någon som har tid o hjälpa mig?

Jag vill visa dom 20 första meddelanderna och sedan kunna välja nästa 20.

Eller ännu häldre visa sidnummer som man kan klicka på t.ex sidan 4 visar 41-50 osv..

tack på förhand Webforum leker ;)

```
<% if request.querystring("visa") = "" or request.querystring("visa") = "utkorg" or request.querystring("visa") = "inkorg" then %>

<% if request.querystring("visa") = "utkorg" then %>

<%
SQL = "SELECT * FROM meddelanden where fran = '" & session("member") & "' and franv = 'visa'"
RecSet.Open SQL, Connection, 3, 3
%>

<%elseif request.querystring("visa") = "" or  request.querystring("visa") = "inkorg" then %>

<%
SQL = "SELECT * FROM meddelanden where till='" & session("member") & "' and tillv = 'visa'"
RecSet.Open SQL, Connection, 3, 3
%>

<% end if %>

<% if recset.eof then%><br><br><center>Inga medelanden</center><br><br><%else%>
<form name="boxar" action="funktioner.asp?funktion=delmessbox" method="post">
<table width="100%">
<tr bgcolor="#E9E9E9"><td width="2%"><input name="allbox" type="checkbox" value="Check All" onClick="CheckAll();" class="check"></td><td width="25%"><%if request.querystring("visa") = "utkorg" then %>Till<%else%>Från<%end if%></td><td>Rubrik</td><td width="15%">Skickat</td></tr>

<% 
do until RecSet.EOF
cnt = cnt + 1
strColor = "#FFFFFF" 
If cnt Mod 2 = 0 then strColor = "#E9E9E9"
%>
<tr bgcolor="<%=strColor%>"><td align="middle"><input type="checkbox" class="check" value="<%=RecSet("ID")%>" name="checkboxar"></td><td><% if recset("nytt") = "0" then%><img src="bilder/ico_messnew.gif"> <%elseif recset("nytt") = "1" then%><img src="bilder/ico_messopen.gif"> <%else recset("nytt") = "2" %><img src="bilder/ico_mess.gif"> <%End IF%> 
<%if request.querystring("visa") = "utkorg" then %><a href="info.asp?member=<%=RecSet("till")%>"><%=RecSet("till")%></a><%else%><a href="info.asp?member=<%=RecSet("fran")%>"><%=RecSet("fran")%></a><%end if%>
</td><td> <a href="default.asp?visa=read&ID=<%=RecSet("ID")%>"><%=Recset("rubrik")%></a></td><td width="20%" align="right"> <%=formatDate(recset("datum"))%>
</td></tr>
<%
RecSet.MoveNext
loop

RecSet.Close
%>
</td></tr><tr bgcolor="#E9E9E9"><td colspan="3">
<a <% if session("inloggad") = false then %>href="javascript:alert(' Du måste logga in för att kunna lägga till en länk. \n Är du inte redan medlem så bli det genast och få \n tillgång till alla roliga grejjer här!');" <% else %>href="javascript:document.boxar.submit()"<% end if %>><img SRC="bilder/tabort.gif" name="skicka" value="Skicka" class="input"></a></td><td></form></td></tr>
</table>
<%end if %>
```

Permalänk: https://www.webforum.nu/p/14098

## #2 — ConnyFox, 2002-01-24T11:55Z

Ingen? Snälla :o)

Permalänk: https://www.webforum.nu/p/308834

## #3 — ConnyFox, 2002-01-29T15:26Z

nehepp \*snyft\*

Permalänk: https://www.webforum.nu/p/308835

## #4 — PatrikB, 2002-01-29T15:38Z

Pagingen är ju ett av de ämnen som tagits upp absolut MEST i detta forum.
Tycker att det låter konstigt att du inte skulle kunna söka reda på information om hur paging funkar.

Sök ... och du borde få upp huuuur många trådar som helst i ämnet, tror att det finns material för en hel bok om paging :e

Gör ett försök, kika igenom kodexempel, försök att hänga med vad som händer när scriptet körs, testa sedan och kom tillbaka så lovar jag att du kommer att få hjälp.

cya,
PatrikB

Permalänk: https://www.webforum.nu/p/308836

## #5 — ConnyFox, 2002-01-29T16:05Z

Hehe jovisst hittar jag massa kod, en sablans massa kod faktiskt, men antingen så sorterar den efter ID X to Y typ o d e ju ganska kört när alla ID inte finns (t.ex om man tagit bort massa inlägg) eller så är koden för krånglig för att jag ska förstå den :o) Så därför ber jag nån vänlig själ att antingen hjälpa mig att förstå eller hjälpa mig med koden. Tackar ;)

Permalänk: https://www.webforum.nu/p/308837

## #6 — Vide, 2002-01-29T16:14Z

> Så därför ber jag nån vänlig själ att antingen hjälpa mig att förstå

Jag ahr skrivit en artikel i ämnet som kanske kan vara till hjälp:
 <http://www.webeye.nu/default2.asp?que=asp/default.asp&exec=asp/artiklar/asp_17.asp>

Permalänk: https://www.webforum.nu/p/308838

## #7 — ConnyFox, 2002-01-29T16:19Z

Tack den hjälpte, funkar inte så bra ihop med min kod dock hehe.. men men får la försöka klura ut något

Permalänk: https://www.webforum.nu/p/308839

## #8 — jorgen, 2002-01-29T16:48Z

Hej, det absolut lättaste är att bygga pagingen först (eller använda en färdig) och sedan utveckla, designa och anpassa den så att den passar. Det är betydligt mycket bökigare att göra tvärt om.

mvh Jörgen :)

Permalänk: https://www.webforum.nu/p/308840

## #9 — PatrikB, 2002-01-29T17:54Z

ok då .... vi får väl ta det steg för steg :e ... ska försöööka vara lite pedagogisk \*ler\*

Det första vi gör är att ändra cursortypen till 1.
Behöver ju inte ställa recordsetet för uppdatering när du endast ska visa poster:

```
RecSet.Open SQL, Connection, 1, 3
```

Vad behöver vi då veta för att kunna dela upp recordsetet på olika sidor:

1\. Hur många poster ska visas på varje "sida"?
2\. Hur många sidor finns det totalt i recordsetet?
3\. Vilken "sida" efterfrågas?

Vi börjar med att lägga till hur många poster vi vill visa per sida:

```
'## -- hur många poster ska visas per sida --
intPageSize = 15 '## -- visa 15 poster per sida --
```

Nu har vi en av byggstenarna i pagingen klar.

Vi går vidare med att lägga till en sak innan recordsetet öppnas.

```
RecSet.PageSize = intPageSize

'## -- öppna recordsetet --
RecSet.Open SQL, Connection, 1, 3
```

dvs, vi säger till recordset objectet att vi endast vill ha intPageSize poster per sida.

Vi har fortfarande ett par saker som behövs innan pagingen e klar ... bara ett par saker :e

Där vi börjar att loopa igenom recordsetet lägger vi till detta:

```
do until RecSet.EOF [b]or cnt >= intPageSize[/b]
```

dvs, den ska inte visa fler poster än vad - intPageSize - säger att den ska göra.

Vi slutar här ..... så att du får lite att göra ..... medans jag hämtar andan =)

Din kod bör se ut ungefär så här:

```
<% 
intPageSize = 15

if request.querystring("visa") = "" or request.querystring("visa") = "utkorg" or request.querystring("visa") = "inkorg" then

	if request.querystring("visa") = "utkorg" then
	
		SQL = "SELECT * FROM meddelanden where fran = '" & session("member") & "' and franv = 'visa'"
		'RecSet.Open SQL, Connection, 1, 3
	
	elseif request.querystring("visa") = "" or request.querystring("visa") = "inkorg" then
	
		SQL = "SELECT * FROM meddelanden where till='" & session("member") & "' and tillv = 'visa'"
		'RecSet.Open SQL, Connection, 1, 3
	
	end if
	
	'## -- hur många poster per sida --
	RecSet.PageSize = intPageSize
	
	'## -- öppna recordsetet --
	RecSet.Open SQL, Connection, 1, 3

	if recset.eof then
%><br><br><center>Inga medelanden</center><br><br>
<%
	else
		do until RecSet.EOF or cnt >= intPageSize
			cnt = cnt + 1
			strColor = "#FFFFFF" 
			If cnt Mod 2 = 0 then strColor = "#E9E9E9"
%>
<----- här ska det vara en massa html ----->
<%
			RecSet.MoveNext
		loop

		RecSet.Close
end if
%>
```

märk att jag plockat bort all oviktig html-kod för att dra ned längden på detta inlägg

cya,
PatrikB

Permalänk: https://www.webforum.nu/p/308841

## #10 — PatrikB, 2002-01-29T18:49Z

del 2 .....

då börjar vi att lägga till en länk till föregående sida och en länk till nästa sida.
Koden lägger du till EFTER att loopen av alla poster har körts:

```
'## -- sid-navigeringen --
Response.Write "<A href=""" & strScriptName & "?page=" & intPage-1 & """"><< Föregående</A> &#0124; " & _
	"<A href=""" & strScriptName & "?page=" & intPage + 1 & """>Nästa >></A>"
```

När vi klickar på länkarna så kommer "nästa" eller "föregående" sida att efterfrågas.
För att vi ska kunna visa den efterfrågade sidan så måste vi "fånga upp" just den efterfrågade sidan.
Det gör vi genom att längst upp lägga till:

```
'## -- vilken sida ska länken gå till, till denna sida --
strScriptName = Request.ServerVariables("SCRIPT_NAME")

'## -- kolla vilken sida som ska visas --
intPage = Request.QueryString("page")
'## -- kolla så att någon sida är vald. om inte visa första sidan --
If intPage = "" Then intPage = 1
```

Nu har vi en liten sak till att göra.
Vi måste säga till recordsetet vilken sida som ska visas.
Det gör vi genom att innan vi går in i loopen lägga till:

```
'## -- gå till efterfrågad sida --
RecSet.AbsolutePage = intPage
```

Din kod bör se ut ungefär så här:

```
<% 
strScriptName = Request.ServerVariables("SCRIPT_NAME")

intPage = Request.QueryString("page")
If intPage = "" Then intPage = 1

intPageSize = 15

if request.querystring("visa") = "" or request.querystring("visa") = "utkorg" or request.querystring("visa") = "inkorg" then

	if request.querystring("visa") = "utkorg" then
	
		SQL = "SELECT * FROM meddelanden where fran = '" & session("member") & "' and franv = 'visa'"
		'RecSet.Open SQL, Connection, 1, 3
	
	elseif request.querystring("visa") = "" or request.querystring("visa") = "inkorg" then
	
		SQL = "SELECT * FROM meddelanden where till='" & session("member") & "' and tillv = 'visa'"
		'RecSet.Open SQL, Connection, 1, 3
	
	end if
	
	'## -- hur många poster per sida --
	RecSet.PageSize = intPageSize
	
	'## -- öppna recordsetet --
	RecSet.Open SQL, Connection, 1, 3

	if recset.eof then
%>
<----- inga poster ----->
<%
	else
		RecSet.AbsolutePage = intPage
		do until RecSet.EOF or cnt >= intPageSize
			cnt = cnt + 1
			strColor = "#FFFFFF" 
			If cnt Mod 2 = 0 then strColor = "#E9E9E9"
%>
<----- här ska det vara en massa html ----->
<%
			RecSet.MoveNext
		loop

		RecSet.Close
end if

'## -- sid-navigeringen --
Response.Write "<A href=""" & strScriptName & "?page=" & intPage-1 & """"><< Föregående</A> &#0124; " & _
	"<A href=""" & strScriptName & "?page=" & intPage + 1 & """>Nästa >></A>"
%>
```

hoppas nu att all denna kod fungerar och att du förstått grunderna till pagingen, för detta är den enklaste formen av paging

\[r\]
OBS!!! ingen felhantering för sid-navigerings länkarna.
Ej heller testad, skriven direkt ...
\[/r\]

cya,
PatrikB

Permalänk: https://www.webforum.nu/p/308842

## #11 — ConnyFox, 2002-01-29T23:10Z

Ah tack seriöst jag fattar faktiskt nu :O) tack tack! ett problem bara! Får fel på följande kod

```
'## -- sid-navigeringen --
Response.Write "<A href=""" & strScriptName & "?page=" & intPage-1 & """"><< Föregående</A> &#0124; " & _
"<A href=""" & strScriptName & "?page=" & intPage + 1 & """>Nästa >></A>"
```

får felet

```
Kompileringsfel i Microsoft VBScript fel '800a03ea' 

Syntaxfel 

/StajlLinks 1.0/messbox.asp, rad 98 

Response.Write "<A href=""" & strScriptName & "?page=" & intPage-1 & """"><< Föregående</A> &#0124; " & _
---------------------------------------------------------------------------^
```

Permalänk: https://www.webforum.nu/p/308843

## #12 — jboy_87, 2002-01-29T23:14Z

prova med mellanslag där??

Permalänk: https://www.webforum.nu/p/308844

## #13 — LarsG, 2002-01-29T23:16Z

```
Response.Write "<A href=""" & strScriptName & "?page=" & intPage-1 & """><< Föregående</A> &#0124; " & _
"<A href=""" & strScriptName & "?page=" & intPage + 1 & """>Nästa >></A>"
```

Permalänk: https://www.webforum.nu/p/308845

## #14 — ConnyFox, 2002-01-29T23:22Z

Ah tackar d funkar fin fint nu! Det löjliga är att jag faktiskt såg att d va en " förmycket men glömde testa o ändra det haha ;) tack PatrikB LarsG o alla andra här nu fattar jag äntligen vad all den där koden gör hehe!

Permalänk: https://www.webforum.nu/p/308846

## #15 — ConnyFox, 2002-01-29T23:58Z

jag gjorde om lite i föregående/nästa länkarna så att föregående inte skulle visas om sidnumret var 1 eller mindre.

```
<% if not intpage <= 1 then %><A href="<%=strScriptName%>?page=<%=intPage-1%>&visa=<%=korg%>"><< Föregående</A> &#0124;<%end if%>
<A href="<%=strScriptName%>?page=<%=intPage+1%>&visa=<%=korg%>">Nästa >></A>
```

tänkte sedan att nästa inte skulle visas om det inte fans några fler inlägg att visa. Hur gör man detta?

ett sätt vore ju att räkna antal inlägg med 

```
sidor = "select count(*) from meddelanden where fran = '" & session("member") & "' and franv = 'visa'"
```

dela sidor med intPageSize och göra det till en variabel, typ antalsidor. 

Och sedan göra så att om intpage inte är mindre eller lika med antalsidor så visas inte nästa länken. visst d skulle kunna funka men kag får inte till koden att dela sidor med intpagesize

nån som kan hjälpa mig med den ?

tackar änu en gång!

Permalänk: https://www.webforum.nu/p/308847

## #16 — ConnyFox, 2002-01-30T00:00Z

a just fan ja sidor blir ju = select count(\*) from meddelanden where fran = '" & session("member") & "' and franv = 'visa'

d va ju inte det jag ville ha utan hur många inlägg den fick fram, hur fixar man det? :o)

\*tabbar mig hela tiden\*

Permalänk: https://www.webforum.nu/p/308848

## #17 — LarsG, 2002-01-30T00:11Z

```
numberOfPages = (recset.recordCount -1)/intPageSize + 1
```

Permalänk: https://www.webforum.nu/p/308849

## #18 — PatrikB, 2002-01-30T00:27Z

```
If CLng(intPage) <= RecSet.PageCount Then
Response.Write "<A href.....
```

cya,
PatrikB

Permalänk: https://www.webforum.nu/p/308850

## #19 — ConnyFox, 2002-01-30T17:20Z

patrik b din kon myskar sig rejält..

fel

```
Körningsfel i Microsoft VBScript fel '800a000d' 

Inkompatibla typer: 'CLng' 

/StajlLinks 1.0/messbox.asp, rad 109
```

Permalänk: https://www.webforum.nu/p/308851

## #20 — PatrikB, 2002-01-30T17:25Z

vad har intPage för värde?

cya,
PatrikB

Permalänk: https://www.webforum.nu/p/308852

---

Tråden på webben: https://www.webforum.nu/amne/asp/14098-paging-prob  
Nästa sida: https://www.webforum.nu/amne/asp/14098-paging-prob/page2.md
