webForumDet fria alternativet

Adresslista med paging.

ASP

4 svar · 221 visningar · startad av MickeA.com

Medlem sedan feb. 20034 441 inlägg
Frågan#1

Hej

Jag håller på med en stor adresslista, som visar adresser och lite mer därtill.

Som det är nu page'as sidan med 40 poster / sida.

Men jag skulle vilja göra så att den delar av och skapar en ny sida för varje bakstav, så jag längst ner kan ha:

[A] [C] osv osv...

Det här är min kod:

Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("d_b/db.mdb"))

nextPage = TRIM( Request.Querystring( "nextPage" ) )
IF nextPage = "" THEN nextPage = 1

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

SQL = "Select ID, Adress, Gatunummer FROM nycklar ORDER BY Adress ASC;"
oRec.Open SQL, oConn, 1, 3

%>
<table class='show_all' border='0' bordercolor='#000000' cellpadding='0' cellspacing='0'>
<%

oRec.PageSize = 40 '<-- Här bestämmer du hur många inlägg det ska finnas på sidan
oRec.AbsolutePage = nextPage

Do until oRec.EOF OR rowCount = oRec.PageSize
rowCount = rowCount + 1
  
cnt = cnt + 1
strColor = "#FCFDC7" 
If cnt Mod 2 = 0 then strColor = "#FEFEDE"
%>
<tr bgcolor="<%= strColor%>">
	<td width='300'><a href="Javascript:openwinsize('visa_adr.asp?id=<%=oRec("ID")%>',width=375,height=130);"><%=Response.Write(oRec("Adress") & "</td><td>" & oRec("Gatunummer"))%></a></td>
</tr>
<tr>
	<td colspan='2' height='5'></td>
</tr>
<%
oRec.MoveNext
Loop%>

<tr><td height='30' colspan='2'></td></tr><tr><td colspan='2'>
<%
IF oRec.PageCount > 1 THEN 

FOR a = 1 to oRec.PageCount
IF a <> cINT( nextPage ) THEN 
Response.Write "<a href='alla_adr.asp?nextPage="& a &"'>["& a &"]</a>&nbsp;"
ELSE 
Response.Write "<b><u>"& a & "</u></b>&nbsp;"
END IF 

If a Mod 15 = 0 Then
  Response.Write("<br>")
End If
NEXT
END IF

Inte all kod, men det som är viktigt, loopen mm.
Kan ngn som är cool ta en titt och hjälpa mig med det här.

Utgå gärna från samma kod, det bör ju gå på ngt sätt, men jag har ingen aning om hur jag ska göra.

Tack !!!

Medlem sedan juli 200319 inlägg
#2

Om du kan ha alla adresser som börjar på A under sidan [A] och alla som börjar på B under sidan **.. osv

..så skulle du kunna göra så att du Loopar ut eller om du orkar skriva, länkarna och lägga till en querystring t ex i dem med rätt bokstav.

Sen ändrar du SQL till:

SQL = "Select ID, Adress, Gatunummer FROM nycklar WHERE Adress LIKE '"& Request.QueryString("bokstav")"%' ORDER BY Adress ASC;"

Säg att Request.QueryString innehåller ett A eller a, då kommer den att visa alla adresser som börjar på ett A, sen får du fixa länkarna på något smart sätt så att de länkar tillbaka till samma sida fast ändrar QueryStringen :)**

Medlem sedan feb. 20034 441 inlägg
#3

Tar det verkligen bara ut de adresser som BÖRJAR på a eller A, jag hade för mig att den tog ut ALLT SOM INNEHÖLL ett a eller A.

Hur funakr det sen med a resp. A, märker den ngn skillnad på stora / små bokstäver?!

Vore smidigt om man kunde få till ngn sorts paging, men jag ska kolla lite till.

Kom med fler idéer o dyl. ;)

Medlem sedan juli 200319 inlägg
#4

den märker ingen skillnad på stora och små bokstäver men om du skriver i SQL ...WHERE Adress LIKE 'A%' så tar den bara ut fält som börjar på A eller a.

Skriver du däremot: WHERE Adress LIKE '%A%' så tar den ut alla fält där cellen Adress innehåller ett "a" eller "A".

Jag tror att det skulle fungera bra att länka på det här sättet om nu inte någon bokstav skulle bli enormt stor, men även det skulle gå att begränsa.

Säg att du skriver ut sidan med en:
Antal = 0
Do Until RS.EOF Or Antal = 50
Antal = Antal +1
Alla adresser som ska skrivas ut..

Medlem sedan feb. 20034 441 inlägg
#5

Ok, tack för svaret, men har gjort så att den plockar ut 'A%' och sen listar med en nby sida / bokstav, så styr jag bara sidväxlingen med en Querystring.

Det funkar bra hittills.

256 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)