---
title: "zPaging II problem..."
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/11330-zpaging-ii-problem"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Method"
published: "2001-08-27T11:16:00.000Z"
updated: "2001-08-28T12:13:00.000Z"
replies: 12
views: 322
page: 1
pages: 1
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/11330-zpaging-ii-problem"
---

# zPaging II problem...

## #1 — Method, 2001-08-27T11:16Z

Jag vill ha så att varje post radas
ner i en tabell men det ända jag har lyckats få är detta (kolla länken)

 <http://www.bengtdahlgren.se/test/kontaktpers.asp> 

jag använder mig av denna koden:

```
<html>
	<head>
		<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
		<META NAME="Author" CONTENT="Jonas Olsson"> 
		<META NAME="GENERATOR" CONTENT="Adobe Golive 5.0">
		<title></title>
		<!-- kollar om användaren använder Microsoft Internet Explorer. -->
			<%
			Kolla = Request.ServerVariables("HTTP_USER_AGENT")
			If Instr(Kolla, "MSIE") then
			%>
				<style type="text/css">
					<!--
					input { color: #000000; background-color: #FFFFFF; font-size: 12px; border: 1px #808080 solid; font-family: Verdana}
					select { color: #000099; background-color: #FFFFFF; font-size: 10px; border: 1px #000099 solid ; font-family: Verdana}
					textarea { color: #000099; background-color: #FFFFFF; font-size: 10px; border: 1px #000099 solid ; font-family: Verdana}
					.send { color: #000000; background-color: #D4D0C8; font-size: 10px; border: 1px #808080 solid; font-family: Verdana}
					.clear { color: #000000; background-color: #D4D0C8; font-size: 10px; border: 1px #808080 solid; font-family: Verdana}
					-->
				</style>
		<!-- Om den inte använder MSIE så skriver den inte ut koden ovan. -->
			<%
			else

			Response.Write ""
			end if
			%>

	</head>

	<body bgcolor="#ffffff" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0" onload="init() ">
		<%
									
						'## -- hämta alla poster --
									Function getRecords
										Dim m_objConn
										Dim m_strConnString
										Dim m_strSQL
										Dim m_objRS
										Dim m_arrRecords
										Dim MinCon
	
									m_strConnString = "provider=Microsoft.Jet.OLEDB.4.0;" & _
									"Data Source=" & Server.MapPath("upload.mdb")
				
						'## -- skapa connection object och öppna upp databasen --
									Set m_objConn = Server.CreateObject("ADODB.Connection")
									m_objConn.Open m_strConnString
		
						'## -- sql-fråga för att hämta alla poster --
						'## -- denna ska du ändra så att den stämmer
						'##    med det som du vill hämta --
						m_strSQL = "SELECT id, fornamn, efternamn, telefon, mobil, [datum] " & _
							"FROM ansokan " & _
							"ORDER BY [datum] DESC"
						'## -- recordset för att hämta alla poster --
									Set m_objRS = m_objConn.Execute(m_strSQL)
			
								If Not m_objRS.EOF Then
									m_arrRecords = m_objRS.GetRows
									getRecords = m_arrRecords
								End If
				
						'## -- clean up --
									m_objRS.Close
									Set m_objRS = Nothing
									m_objConn.Close
									Set m_objConn = Nothing

								End Function

						'## -- skriv ut sidnummer navigeringen --
								Sub PageNumbers(ByVal HowManyPages, WichPage)
								Dim strScriptName
								Dim I
	
						'## -- kolla om det finns några sidor --
								If HowManyPages = 0 Then
								Response.Write "0"
								Exit Sub
								End If

								strScriptName = Request.ServerVariables("SCRIPT_NAME")
						
						
						'## -- skriv ut länkar till sid nummer n. 
						'##    Den sida som visas ska ej vara länkad --
								For I = 1 To HowManyPages
								If CInt(I) <> CInt(WichPage) Then					
								Response.Write "<a href='" & strScriptName & "?" & "kontor=" & Server.URLEncode((kontor)) & _
								"&page=" & I & "'>" & I & "</A> "
							Else
								Response.Write "" & I & " "
							End If
						Next
				End Sub
								
						'## -- vilken post ska pagingen börja på --
								Function getStartID(ByVal PageSize, ByVal ViewPage) ' As Integer
								Dim m_intStart
								m_intStart = ((PageSize * ViewPage) - PageSize)
								getStartID = m_intStart
							End Function

								'## -- räkna ut hur många sidor som ska visas --
								'## -- updated: July 14, 2001
								'## -- update by: Patrik Berggren, mrwize@mrwize.nu
								'## -------------------------------------------------------------
								'##
								'## -- vid vissa tillfällen returnerades fel sidantal.
								'## Felet/Buggen berodde på avrundningen med CInt()
								'## och CLng().
								'## -- Avrundningen som jag gjorde:
								'##
								'## m_intTotalPages = CInt((HowManyRecords / PageSize) + 0.5)
								'##
								'## vart i vissa fall fel och sid antalet vart fler än 
								'## vad det egentligen skulle vara.
								'## Lösningen, hoppas jag, är att kolla hur stor resten
								'## blir vid avrundning.
								'## Om resten är större än 0 eller mindre än 0.5 så ska en sida
								'## läggas till.
								'## I annat fall så gäller avrundningen.
								'## Har testat flera olika kombinationer med olika records antal
								'## och sidstorlekar och ej hittat några buggar.
								'## Så nu hoppas jag att denna paging är buggfri *ler*
								'## -------------------------------------------------------------
								Function countPages(ByVal HowManyRecords, ByVal PageSize)
								Dim m_intTotalPages, m_intRest
								m_intTotalPages = HowManyRecords / PageSize

								If m_intTotalPages < 1 Then
								m_intTotalPages = 1
								Else
								m_intRest = m_intTotalPages - CLng(m_intTotalPages)

								If m_intRest > 0 AND m_intRest < 0.5 Then
								m_intTotalPages = CLng(m_intTotalPages) + 1
								Else
								m_intTotalPages = CLng(m_intTotalPages)
								End If
								End If

								'## -- return how many pages --
								countPages = m_intTotalPages
								End Function

						'##***********************************************************************************
								Dim arrRecords
								Dim intPageSize
								Dim intPage
								Dim intStartID
								Dim I
								Dim intId				
								Dim intTotalPages
								Dim intTotalRecords
								Dim strNamn
								Dim strEfternamn
								Dim strTelefon
								Dim strMobil
								Dim dteDatum
								Dim intCounter
								

						'## -- vilken sida ska visas --
								intPage = Request.QueryString("page")
								If intPage = "" Then intPage = 1

						'## -- hur många poster ska visas per sida --
								intPageSize = 20

						'## -- hämta alla records, hämtas med metoden getrows och returneras
						'##    som en array. --
								arrRecords = getRecords

						'## -- vilken post är den första --
								intStartID = getStartID(intPageSize, intPage)

						'## -- printa ut sidan som ska visas
						'##    alla poster finns i arrayen arrRecords som
						'##    kommer från funktionen getRecords --
							If IsArray(arrRecords) Then
								'Response.Write "E ju en array<BR>"
						'## -- hur många records finns det totalt --
								intTotalRecords = UBound(arrRecords,2) + 1
	
						'## -- hur många sidor finns det i recordsetet --
								intTotalPages = countPages(intTotalRecords, intPageSize)

						'## -- startar tabellen utanför loopen --
								Response.Write "<table border=""2"" cellpadding=""0"" cellspacing=""8"" width=""680"">"

						'## -- skriv ut sidnavigerings menyn --
								Response.Write "<tr>"
								Response.Write "<td align=""left"" valign=""top"">ff</td>"
								Response.Write "<form name=""menu"">"
								Response.Write "<td align=""right"" valign=""bottom"">"
								Response.Write "<select name=links onChange=""window.location=menu.links.options[menu.links.selectedIndex].value;"">"
								Response.Write "<option>-- Välj kontor --</option>"
								Response.Write "<option value=""kontaktpers.asp?Kontor=" & server.urlencode(("Göteborg")) & """>Göteborg</option>"
								Response.Write "<option value=""kontaktpers.asp?Kontor=" & server.urlencode(("Härnösand")) & """>Härnösand</option>"
								Response.Write "<option value=""kontaktpers.asp?Kontor=" & server.urlencode(("Linköping")) & """>Linköping</option>"
								Response.Write "<option value=""kontaktpers.asp?Kontor=" & server.urlencode(("Malmö")) & """>Malmö</option>"
								Response.Write "<option value=""kontaktpers.asp?Kontor=" & server.urlencode(("Stockholm")) & """>Stockholm</option>"
								Response.Write "</select>"
								Response.Write "</td></form><td align=""right"">"
								Response.Write "Sida: "
								Call PageNumbers(intTotalPages,intPage)
								Response.Write "</td>"
								Response.Write "</tr>"
								Response.Write "<tr>"
								Response.Write "<td colspan=""4""><hr size=""1"" color=""#000099""></td>"
								Response.Write "</tr>"
								Response.Write "</table>"
								Response.Write "<table border=""5"" cellpadding=""0"" cellspacing=""8"" width=""650"">"
								Response.Write "<tr>"
								Response.Write "<td>Datum</td>"
								Response.Write "<td>Namn</td>"
								Response.Write "<td>Efternamn</td>"
								Response.Write "<td>Mobil</td>"
								Response.Write "<td>Telefon</td>"
								Response.Write "</tr>"
								Response.Write "<tr>"
						'## Loopen börjar
								For I = intStartID To ((intStartID + intPageSize) -1)

								intId = arrRecords(0,I)
								strNamn = arrRecords(1,I)
								strEfternamn = arrRecords(2,I)
								dteDatum = arrRecords(5,I)
								strMobil = arrRecords(3,I)
								strTelefon = arrRecords(4,I)
		
					
								Response.Write "<td> " & dteDatum & "</td>"
								Response.Write "<td> " & strNamn & "</td>"
								Response.Write "<td> " & strEfternamn & "</td>"
								Response.Write "<td> " & strMobil  & "</td>"
								Response.Write "<td> " & strTelefon & "</td>"

						If I = UBound(arrRecords, 2) Then Exit For

						Next

						'## -- stänger tabellen efter loopen --
								

								Response.Write "</tr></table><br>"

						'## -- skriv ut sidnavigerings menyn --
								Call PrevPage(intPage)
								Response.Write" "

								Call NextPage(intTotalPages,intPage)

						'## -- skriver ut sidnavigeringen --
						'## -- skriv ut föregående sida --
								Sub PrevPage(ByVal WichPage)
								Dim strScriptName
								strScriptName = Request.ServerVariables("SCRIPT_NAME")

								Response.Write "<table border=""0"" cellpadding=""0"" cellspacing=""8"" width=""680"">"

						'## -- skriv ut en länk till föregående sida --
								If CInt(WichPage) > 1 Then
								Response.Write "<tr><td align=""left""><a href='" & strScriptName & "?" & "kontor=" & Server.URLEncode((kontor)) & "&page=" & WichPage - 1 & "'><img border=""0"" src=""../../bilder/pilar/left.gif""> Föregående</a></td>" 

							Else
								Response.Write "<td align=""left""></td>"
							End If
							End Sub

						'## -- skriv ut nästa sida --
								Sub NextPage(ByVal HowManyPages, ByVal WichPage)
								Dim strScriptName
								strScriptName = Request.ServerVariables("SCRIPT_NAME")
	
						'## -- skriv ut en länk till nästa sida --
								If CInt(WichPage) < CInt(HowManyPages) Then
								Response.Write "<td align=""right""><a href='" & strScriptName & "?" & "kontor=" & Server.URLEncode((kontor)) & "&page=" & WichPage + 1 & "'>Nästa <img border=""0"" src=""../../bilder/pilar/right.gif""></a></td></tr></table>" 
 
							Else
								Response.Write "<td align=""right""></td></tr></table>"
		
							End If
							End Sub
							
							Else
	
						'## -- inga poster fanns i db --
								intPage = 0
								intTotalRecords = 0
								intTotalPages = 0
	
						'## -- skriv ut att inga poster hittades --
								Response.Write "<P>Det finns inga kontaktpersoner för detta kontor.</P>"
							End If
							%>
	</body>

</html>
```

Vill även ha varannan rad grå

Kan nån förklara hur jag skall göra

tack på förhand

MVH

Jonas

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

## #2 — Eclipse, 2001-08-27T12:08Z

I min dator kommer alla på en enda lång rad. Har du glömt en extra "\<TD\>" eller "\<TR\>"?

\---
IF bgColor = "#666666" THEN bgColor = "#FFFFFF" ELSE bgColor = "#666666"

Det är en variant, det finns flera.

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

## #3 — EchO, 2001-08-27T12:10Z

Här är ett annat förslag på hur du färgar tabellen:

```
if ((oRecordSet.AbsolutePosition) mod 2) = 1 then
		
	response.write "<table><tr><td bgcolor=""#d3e3d8"" border=1>" & oRecordSet("dooh") & "</td></tr></table>"
else
	response.write "<table><tr><td bgcolor=""#000000"" border=1>" & oRecordSet("dooh") & "</td></tr></table>"
end if
```

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

## #4 — Method, 2001-08-27T12:20Z

det är det som är problemet att allt hamnar på en lång rad jag sa ju hur jag vill ha det men det funkar inte.

Jag har inte glömt avslutet på tr lr åt sånt

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

## #5 — mrblonde, 2001-08-27T12:20Z

Din  poster kommer på en rad för du gjore bara en rad...

```
'## Loopen börjar
For I = intStartID To ((intStartID + intPageSize) -1)

intId = arrRecords(0,I)
strNamn = arrRecords(1,I)
strEfternamn = arrRecords(2,I)
dteDatum = arrRecords(5,I)
strMobil = arrRecords(3,I)
strTelefon = arrRecords(4,I)

Response.Write "<tr><td> " & dteDatum & "</td>"
Response.Write "<td> " & strNamn & "</td>"
Response.Write "<td> " & strEfternamn & "</td>"
Response.Write "<td> " & strMobil & "</td>"
Response.Write "<td> " & strTelefon & "</td></tr>"

If I = UBound(arrRecords, 2) Then Exit For

Next

'## -- stänger tabellen efter loopen --

'Response.Write "</table><br>"
```

Jag ahr bara lagt in så att du petar in en \<tr\> först i loopen och en sists. Annars så blir det ju inte ny rad för varje varv.

Det Kan vara en idé att stoppa in en nonebreaking space om rs variablen är tom, annars kan det funka småkass i netscape t ex.

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

## #6 — Method, 2001-08-27T12:24Z

Jag e och känner mig så newbie nu va ;)

Tack för hjälpen 

vilket slarv fel av mig, så går det när man har semester...

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

## #7 — Method, 2001-08-27T13:26Z

Hej igen,

Jag har lite problem med att färga raderna i tabellen.

EchO exempel funkar inte. den säger Object required

Kan nån säga hur man skall göra?

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

## #8 — Method, 2001-08-27T13:27Z

Hur får jag mellanslag mellan denna 

```
Response.Write "<td> " & strNamn & strEfternamn & "</td>"
```

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

## #9 — PatrikB, 2001-08-27T13:40Z

```
Response.Write "<td> " & strNamn & " " & strEfternamn & "</td>"
```

cya,
PatrikB

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

## #10 — EchO, 2001-08-27T16:53Z

Testa med att skapa ett recorset!

```
Set oRecordSet = Server.CreateObject("ADODB.Recordset")
```

Sedan bör det funka!

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

## #11 — Method, 2001-08-28T09:28Z

Finns det inte ett lättare sätt att göra det på ? ;)

Jag prova med en if-sats som jag har kört på andra sidor me det funka inte

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

## #12 — PatrikB, 2001-08-28T11:14Z

Testa denna:

```
'## Loopen börjar
For I = intStartID To ((intStartID + intPageSize) -1)

'## -- bgcolor --
If I mod 2 = 0 Then
	varBgColor = "#FFFFFF"
Else
	varBgColor = "#FAFAFA"
End If
'## -- end bgcolor --

intId = arrRecords(0,I)
strNamn = arrRecords(1,I)
strEfternamn = arrRecords(2,I)
dteDatum = arrRecords(5,I)
strMobil = arrRecords(3,I)
strTelefon = arrRecords(4,I)

Response.Write "<td bgcolor=""" & varBgColor & """> " & dteDatum & "</td>"
Response.Write "<td bgcolor=""" & varBgColor & """> " & strNamn & "</td>"
Response.Write "<td bgcolor=""" & varBgColor & """> " & strEfternamn & "</td>"
Response.Write "<td bgcolor=""" & varBgColor & """> " & strMobil & "</td>"
Response.Write "<td bgcolor=""" & varBgColor & """> " & strTelefon & "</td>"

If I = UBound(arrRecords, 2) Then Exit For

Next
```

cya,
PatrikB

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

## #13 — Method, 2001-08-28T12:13Z

TACK SÅ HEMSKT MYCKET. :) :) :)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/11330-zpaging-ii-problem
