---
title: "Pagin och tabell färger?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/48300-pagin-och-tabell-färger"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "JPS"
published: "2002-07-21T00:51:02.000Z"
updated: "2002-07-21T22:34:59.000Z"
replies: 4
views: 278
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/48300-pagin-och-tabell-färger"
---

# Pagin och tabell färger?

## #1 — JPS, 2002-07-21T00:51Z

Jag testar följande pagin kod (mycket bra!) och skulle behöva få varannan rad (Tabellen med utdata) med annan färg. Kan någon fixa koden nedan? Jag har testat själv men får inget att funka.

Original kod
\---------------------------------------------
	For I = intStartID To ((intStartID + intPageSize) -1)
	
		intId = arrRecords(0,I)
		strFornamn = arrRecords(1,I)
		strEfternamn = arrRecords(2,I)
		
		Response.Write " " & strFornamn & " " & strEfternamn & "\<BR\>"
		
		If I = UBound(arrRecords,2) Then Exit For
	Next
\---------------------------------------------

Min test
\---------------------------------------------
TableColor = 0 

	For I = intStartID To ((intStartID + intPageSize) -1)
	
		if TableColor Mod 2 = 1 then
		strColor = list01
		else
		strColor = list02
		end if
	
		intId = arrRecords(0,I)
		strFornamn = arrRecords(1,I)
		strEfternamn = arrRecords(2,I)
		
Response.Write "\<tr\>"& vbCrLf 
Response.Write "\<td class=" &  strColor  & "\>" & strFornamn & "\</td\>"& vbCrLf 
Response.Write "\<td class=" & = strColor  & "\>" & strEfternamn & "\</td\>"	& vbCrLf 
Response.Write "\</tr\>"& vbCrLf 
		

		If I = UBound(arrRecords,2) Then Exit For
		
		TableColor = TableColor + 1
		
	Next

\--------------------------------------------------

Hela sidan
\--------------------------------------------------

\<%
Option Explicit
Response.Buffer = FALSE
%\>
\<HTML\>
\<HEAD\>
\<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"\>

	\<link rel="stylesheet" type="text/css" href="mall.css"\>

\</HEAD\>
\<BODY CLASS="2"\>
\<%

'## -- hämta alla poster --
Function getRecords
	Dim m_objConn
	Dim m_strConnString
	Dim m_strSQL
	Dim m_objRS
	Dim m_arrRecords
	
	m_strConnString = "provider=Microsoft.Jet.OLEDB.4.0;" & \_
		"Data Source=" & Server.MapPath("/Test.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 " & \_
			"FROM Person " & \_
			"ORDER BY Fornamn 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

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

	'## -- skriv ut en länk till föregående sida --
	If CInt(WichPage) \> 1 Then
		Response.Write "\<A href='" & strScriptName & "?" & \_
			"page=" & WichPage - 1 & "'\>\<b\>&laquo;\</b\> Föregående\</A\> "
	Else
		Response.Write "\<b\>&laquo;\</b\> Föregående "
	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 "\<A href='" & strScriptName & "?" & \_
			"page=" & WichPage + 1 & "'\>Nästa \<b\>&raquo;\</b\>\</A\>"
	Else
		Response.Write " Nästa \<b\>&raquo;\</b\>"
	End If

End Sub

'## -- 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 & "?" & \_
				"page=" & I & "'\>" & I & "\</A\> "
		Else
			Response.Write "\<B\>" & I & "\</B\> "
		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 strFornamn
Dim strEfternamn
Dim intTotalPages
Dim intTotalRecords

Dim  TableColor
Dim  strColor
Dim  list01
Dim  list02

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

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

'## -- 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)

'Response.Write "\<table border=""1"" cellpadding=""0"" cellspacing=""0"" height=""""\>" & vbCrLf 
'Response.Write "\<tr\>"
'Response.Write "\<td width=""500"" bgcolor=""C8C2A7""\>"

'	Response.Write "\<P\>Visar nu sida \<B\>" & intPage & "\</B\> av " & intTotalPages & "\</P\>"

Response.Write "\<table border=""0"" cellpadding=""2"" cellspacing=""1"" bgcolor=""#000000"" width=""500""\>"& vbCrLf 
Response.Write "\<tr\>"& vbCrLf 
Response.Write "\<td bgcolor=""#151B7E"" width=""100""\>\<font color=""#ffffff""\>Info:\</font\>\</td\>"& vbCrLf 
Response.Write "\<td bgcolor=""#f0f0f0""\>Visar nu sida " & intPage & " av " & intTotalPages & "\</td\>"& vbCrLf 
Response.Write "\</tr\>"& vbCrLf 
Response.Write "\<tr\>"& vbCrLf 
Response.Write "\<td bgcolor=""#ffffff"" colspan=""2""\>"& vbCrLf 

Response.Write "\<table border=""0"" cellspacing=""0"" cellpadding=""2"" width=""100%""\>"& vbCrLf 
Response.Write "\<tr\>"& vbCrLf 
Response.Write "	\<td class=""list00""\>Efternamn\</td\>"& vbCrLf 
Response.Write "	\<td class=""list00""\>Förnamn\</td\>"& vbCrLf 
Response.Write "\</tr\>"& vbCrLf 

 TableColor = 0 

	For I = intStartID To ((intStartID + intPageSize) -1)
	
		if TableColor Mod 2 = 1 then
		strColor = list01
		else
		strColor = list02
		end if
	
		intId = arrRecords(0,I)
		strFornamn = arrRecords(1,I)
		strEfternamn = arrRecords(2,I)
		
Response.Write "\<tr\>"& vbCrLf 
Response.Write "\<td class=" &  strColor  & "\>" & strFornamn & "\</td\>"& vbCrLf 
Response.Write "\<td class=" & = strColor  & "\>" & strEfternamn & "\</td\>"	& vbCrLf 
Response.Write "\</tr\>"& vbCrLf 
		

		If I = UBound(arrRecords,2) Then Exit For
		
		TableColor = TableColor + 1
		
	Next

	
Response.Write "\<tr\>"& vbCrLf 
Response.Write "	\<td class=""list00""\>&nbsp;\</td\>"& vbCrLf 
Response.Write "	\<td class=""list00""\>&nbsp;\</td\>"& vbCrLf 
Response.Write "\</tr\>"& vbCrLf 
Response.Write "\</table\>"& vbCrLf 
	
'Response.Write "\</td\>"
'Response.Write "\</tr\>"
'Response.Write "\</table\>"

Else
	'## -- inga poster fanns i db --
	intPage = 0
	intTotalRecords = 0
	intTotalPages = 0
	
	'## -- skriv ut att inga poster hittades --
	Response.Write "\<P\>No records found.\</P\>"
End If

'## -- skriv ut sidnavigerings menyn --

'Call PrevPage(intPage)
'Response.Write " \| "

'Call NextPage(intTotalPages,intPage)

'Response.Write "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sida: "

'Call PageNumbers(intTotalPages,intPage)

Response.Write "\</td\>"
Response.Write "\</tr\>"
Response.Write "\<tr\>"
Response.Write "\<td bgcolor=""#FF9C31""\>\<font color=""#ffffff""\>Navigera:\</font\>\</td\>"
Response.Write "\<td bgcolor=""#f0f0f0""\>"
Call PrevPage(intPage)
Response.Write " \| "
Call NextPage(intTotalPages,intPage)
Response.Write " &nbsp; &nbsp; &nbsp; Sida:"
Call PageNumbers(intTotalPages,intPage)
Response.Write "\</td\>"
Response.Write "\</tr\>"
Response.Write "\</table\>"

%\>

\</BODY\>
\</HTML\>

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

## #2 — solbulle, 2002-07-21T01:17Z

Vid en snabb anblick tycker jag nog att det där kan fungera, men du har gjort en liten miss:

```
Response.Write "<td class=" & strColor & ">" & strEfternamn & "</td>" & vbCrLf
```

Lika med tecknet skall bort!

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

## #3 — JPS, 2002-07-21T22:20Z

Problemet är att jag inte får nått värde på strColor

ASP-kod: Response.Write "\<td class=" & strColor  & "\>" & strFornamn & "\</td\>"
Html-kod: \<td class=\>Sven\</td\>

Hur skall det hämtas?

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

## #4 — solbulle, 2002-07-21T22:26Z

I denna kodsnutt sätter du ju värdet på strColor:

```
if TableColor Mod 2 = 1 then 
strColor = list01 
else 
strColor = list02 
end if
```

Sen måste du ju givetvis någonstans sätta ett värde på de variablerna, eller göra det där direkt, typ:

```
if TableColor Mod 2 = 1 then 
strColor = "#c2c287"
else 
strColor = "#cccc99"
end if
```

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

## #5 — JPS, 2002-07-21T22:34Z

Tackar för hjälpen!

Det var "" som saknades runt list01 och list02 

if TableColor Mod 2 = 1 then
strColor = "list01"
else
strColor = "list02"
end if

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/48300-pagin-och-tabell-färger
