webForumDet fria alternativet

zPaging II problem...

12 svar · 276 visningar · startad av Method

MethodMedlem sedan apr. 2001357 inlägg
#1

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

------------------
--------------
STARZINGER
Tackar & Bockar forumet rockar!
Med ett hugg faller inget träd

[Redigerat av Method den 27 aug 2001]

[Redigerat av Method den 27 aug 2001]

EclipseMedlem sedan juli 20003 825 inlägg
#2

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.

EchOMedlem sedan aug. 2001112 inlägg
#3

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

------------------
**#**EchO

MethodMedlem sedan apr. 2001357 inlägg
#4

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

------------------
--------------
STARZINGER
Tackar & Bockar forumet rockar!
Med ett hugg faller inget träd

mrblondeMedlem sedan aug. 20012 349 inlägg
#5

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.

------------------
calling me a motherfucker, saying he's gonna blow me away and blah, blah, blah, blah, blah.
National Blonde Day!

[Redigerat av mrblonde den 27 aug 2001]

MethodMedlem sedan apr. 2001357 inlägg
#6

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...

------------------
--------------
STARZINGER
Tackar & Bockar forumet rockar!
Med ett hugg faller inget träd

MethodMedlem sedan apr. 2001357 inlägg
#7

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?

------------------
--------------
STARZINGER
Tackar & Bockar forumet rockar!
Med ett hugg faller inget träd

[Redigerat av Method den 27 aug 2001]

MethodMedlem sedan apr. 2001357 inlägg
#8

Hur får jag mellanslag mellan denna

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

------------------
--------------
STARZINGER
Tackar & Bockar forumet rockar!
Med ett hugg faller inget träd

PatrikBMedlem sedan mars 20002 836 inlägg
#9
Response.Write "<td> " & strNamn & " " & strEfternamn & "</td>"

cya,
PatrikB

------------------
*ordning och reda!, pengar på fredag.*

EchOMedlem sedan aug. 2001112 inlägg
#10

Testa med att skapa ett recorset!

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

Sedan bör det funka!

------------------
**#**EchO

MethodMedlem sedan apr. 2001357 inlägg
#11

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

------------------
--------------
STARZINGER
Tackar & Bockar forumet rockar!
Med ett hugg faller inget träd

PatrikBMedlem sedan mars 20002 836 inlägg
#12

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

------------------
*ordning och reda!, pengar på fredag.*

MethodMedlem sedan apr. 2001357 inlägg
#13

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

------------------
--------------
STARZINGER
Tackar & Bockar forumet rockar!
Med ett hugg faller inget träd

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