Avatar billede md_craig Nybegynder
17. april 2002 - 13:23 Der er 10 kommentarer og
1 løsning

10 af gangen / paging

Jeg er kommet så langt med min kode... Det virker Kanon godt... nu mangle jeg bare det der pagening !)"="¤#! eller hvodan det nu staves...

--------------------------------------------------------
<%
'*** Åbne connection
strPath = server.Mappath("Links.mdb")
strDSN = "provider = microsoft.jet.OLEDB.4.0; Data Source =" & strPath
set cn = server.createobject("ADODB.Connection")
cn.open strDSN

'*** Linie 25
'*** Definere Kat_id ud fra et link (link.asp?kat_id=1)
kat_id = Request.QueryString("kat_id")
emne_id = Request.QueryString("emne_id")

'*** Åbne recordset for kategorivisning
straSQL = "SELECT emnenavn.emne_id, emnenavn.emne_navn, EmneKatNavn.EmneKat_ID, EmneKatNavn.Emne_Navn_tilhor, EmneKatNavn.EmneKat_link FROM emnenavn INNER JOIN EmneKatNavn ON emnenavn.EmneKat_ID = EmneKatNavn.EmneKat_ID WHERE (((emnenavn.emne_id)=" & Emne_id & "));"

Set rs2 = cn.Execute(straSQL)

'*** Linie 35
'*** Åbne recordset for linkvisning
strSQL = "SELECT Programering.Link, Programering.Beskrivelse, Programering.id, emnenavn.emne_id, emnenavn.emne_navn, Kategorinavn.Kat_id, Kategorinavn.Kat_navn, emnenavn.EmneKat_ID FROM (((Programering INNER JOIN emne ON Programering.id = emne.id) INNER JOIN kategori ON Programering.id = kategori.id) INNER JOIN Kategorinavn ON kategori.kat_id = Kategorinavn.Kat_id) INNER JOIN emnenavn ON emne.emne_id = emnenavn.emne_id WHERE (((emnenavn.emne_id)=" & Emne_id & ") AND ((Kategorinavn.Kat_id)=" & Kat_id & "));"

Set rs = cn.Execute(strSQL)

response.write "<table border=0 cellspacing=0 cellpadding=0 width=531>"
response.write "<tr>"
response.write "<td height=10></td>"
response.write "</tr>"
response.write "<tr>"
response.write "<td height=15 align=center><font size=4 face=tahoma><b>"
response.write rs2("Emne_Navn_tilhor")

response.write "</b></font></td></tr><tr><td height=5></td></tr><tr><td height=12 align=center>"
response.write rs2("EmneKat_link")
response.write "<br><hr>"
response.write "</td></tr><tr><td>"

response.write "<table border=0 Cellspacing=2 cellpadding=2 align=center width=531>"
response.write "<tr>"
response.write "<td width=50 Align=center>Kategori</td>"
response.write "<td width=150 Align=center>Link</td>"
response.write "<td width=331 Align=center>Beskrivelse</td>"
response.write "</tr>"

Do While Not rs.EOF

'*** Til Debug
'* response.write "debug"
'* response.end
'*** Linie 45
'*** Udskrive Data
'*** Udskrive Data
response.write "<tr><td width=55 align=center valign=top BGcolor=#DDDDFF>"
response.write rs("Kat_navn")
response.write "</td><td width=220 valign=top BGcolor=#DDDDFF><a href="
response.write rs("Link")
response.write " Target=_blank>"
response.write rs("Link")
response.write "</a></td>"
response.write "</td><td width=256 valign=top BGcolor=#DDDDFF>"
response.write rs("Beskrivelse")
response.write "</td></tr>"

rs.MoveNext
Loop

'***Husk at lukke connectionen til sidst.
cn.Close
Set cn = Nothing
%>
--------------------------------------------------------

Nogen der kan hjælpe ????
Avatar billede keysersoze Ekspert
17. april 2002 - 13:28 #1
Avatar billede kimiwan Nybegynder
17. april 2002 - 13:29 #2
Et link:

http://aspfree.com/authors/bipin/adorecordsetpaging.asp

men du behøver altså ikke gi' mig mere end 10 pts, hvis du kan nøjes med det :o)
Avatar billede md_craig Nybegynder
17. april 2002 - 13:37 #3
Jo... jeg har link.... jeg kan bare ikke lige overskue det nu... jeg har nemlig sidet og lavet den overstående kode... som køre rundt i mit hovede... de SQL sætninger jeg har er ikke noget at pjatte med... de har næste taget livet af mig...
Avatar billede md_craig Nybegynder
17. april 2002 - 14:49 #4
hmmm... der er nok ikke noget at hente her... men ok, det er oxo ok advanceret....

ad
Avatar billede eagleeye Praktikant
17. april 2002 - 15:00 #5
jeg ville godt lavet det for dig men du må vendte til iaften hvor jeg er hjemme.
Avatar billede md_craig Nybegynder
17. april 2002 - 16:32 #6
du må gerne lave det for mig... men ideen er at jeg oxo skal kunne forstå...

http://activedeveloper.dk/aspdigital/kapitel2/paging.asp

er veldig fin OK, men hvor forklare de den... Bahhh

desuden så virker det ikke 100% men det kan det god.. og jeg er tæt på...

hvis du laver det med forklaringer så jeg kan forstå det så er de 120 point dine...
Avatar billede eagleeye Praktikant
17. april 2002 - 19:19 #7
Hej her er din fil med paging som jeg ser det:



<%
'*** Åbne connection
strPath = server.Mappath("db10.mdb")
strDSN = "provider = microsoft.jet.OLEDB.4.0; Data Source =" & strPath
set cn = server.createobject("ADODB.Connection")
Set rs = server.CreateObject("ADODB.RecordSet")
cn.open strDSN

'*** Linie 25
'*** Definere Kat_id ud fra et link (link.asp?kat_id=1)
kat_id = Request.QueryString("kat_id")
emne_id = Request.QueryString("emne_id")

'Hent start side nummeret hvis tomt eller forkert type sæt start side til 1
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
    intPage = 1
End If

'*** Åbne recordset for kategorivisning
straSQL = "SELECT emnenavn.emne_id, emnenavn.emne_navn, EmneKatNavn.EmneKat_ID, EmneKatNavn.Emne_Navn_tilhor, EmneKatNavn.EmneKat_link FROM emnenavn INNER JOIN EmneKatNavn ON emnenavn.EmneKat_ID = EmneKatNavn.EmneKat_ID WHERE (((emnenavn.emne_id)=" & Emne_id & "));"

Set rs2 = cn.Execute(straSQL)

'*** Linie 35
'*** Åbne recordset for linkvisning
strSQL = "SELECT Programering.Link, Programering.Beskrivelse, Programering.id, emnenavn.emne_id, emnenavn.emne_navn, Kategorinavn.Kat_id, Kategorinavn.Kat_navn, emnenavn.EmneKat_ID FROM (((Programering INNER JOIN emne ON Programering.id = emne.id) INNER JOIN kategori ON Programering.id = kategori.id) INNER JOIN Kategorinavn ON kategori.kat_id = Kategorinavn.Kat_id) INNER JOIN emnenavn ON emne.emne_id = emnenavn.emne_id WHERE (((emnenavn.emne_id)=" & Emne_id & ") AND ((Kategorinavn.Kat_id)=" & Kat_id & "));"
strSQL = "SELECT * FROM sidevalg;"
'Set rs = cn.Execute(strSQL)
'Ny måde at åbne tabellen på for at få adgang til paging via recordset'et.
rs.Open strSQL, cn, 1

response.write "<table border=0 cellspacing=0 cellpadding=0 width=531>"
response.write "<tr>"
response.write "<td height=10></td>"
response.write "</tr>"
response.write "<tr>"
response.write "<td height=15 align=center><font size=4 face=tahoma><b>"
response.write rs2("Emne_Navn_tilhor")

response.write "</b></font></td></tr><tr><td height=5></td></tr><tr><td height=12 align=center>"
response.write rs2("EmneKat_link")
response.write "<br><hr>"
response.write "</td></tr><tr><td>"

response.write "<table border=0 Cellspacing=2 cellpadding=2 align=center width=531>"
response.write "<tr>"
response.write "<td width=50 Align=center>Kategori</td>"
response.write "<td width=150 Align=center>Link</td>"
response.write "<td width=331 Align=center>Beskrivelse</td>"
response.write "</tr>"

'Udregner og sættet hvis side fra recordset'et som skal udskrives
If Not (rs.BOF Or rs.EOF) Then
  rs.PageSize = 10              '<-------- Angiv antal record pr side der skal vises
  rs.AbsolutePage = intPage    'Angiver hvilken side Record setet skal gå til
  intRecCount = rs.PageSize    'Recordset'et udregner hvor mange der kan/skal vises pr side.
  intPageCount = rs.PageCount  'Recordset'et udregner hvor mange sider der er total i recordsetet.
end if

Do While Not rs.EOF And intRecCount > 0
  'tæl hvor mange record som er udskrevet ved at tælle intRecCount ned til 0..
  intRecCount = intRecCount - 1
'*** Til Debug
'* response.write "debug"
'* response.end
'*** Linie 45
'*** Udskrive Data
'*** Udskrive Data
response.write "<tr><td width=55 align=center valign=top BGcolor=#DDDDFF>"
response.write rs("Kat_navn")
response.write "</td><td width=220 valign=top BGcolor=#DDDDFF><a href="
response.write rs("Link")
response.write " Target=_blank>"
response.write rs("Link")
response.write "</a></td>"
response.write "</td><td width=256 valign=top BGcolor=#DDDDFF>"
response.write rs("Beskrivelse")
response.write "</td></tr>"

rs.MoveNext
Loop
Response.Write "</table>"

'Her laves << og >> samt side nummer 1 2 3 4 osv...
Response.Write "<p>Gå til side "
For intNum = 1 To intPageCount
    ' Filnavnet skal være filnavet på denne fil, Request.ServerVariable("SCRIPT_NAME") giver automatisk filnavnet
    ' De variable som skal bruges til at søge med skal med i linket..
    ' - det er kat_id og emne_id
    ' - samt intPage nummer for at vise den rigtige side
    ' De kan også ligges i en Session varibale det kræver så at brugere har slået cookies til for det virker.
    Response.Write "<a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?page=" & intNum & "&kat_id=" & kat_id & "&emne_id=" & emne_id & """>" & intNum & "</a> "
Next

Response.Write "<p>"
If Clng(intPage) > 1 Then
    Response.Write "<a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?page=" & intPage - 1 & "&kat_id=" & kat_id & "&emne_id=" & emne_id & """>&lt;&lt;</a>"
Else
    Response.Write "&lt;&lt;"
End If

Response.Write "&nbsp;"

If Clng(intPage) < Clng(intPageCount) Then
    Response.Write "<a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?page=" & intPage + 1 & "&kat_id=" & kat_id & "&emne_id=" & emne_id & """>&gt;&gt;</a> "
Else
    Response.Write "&gt;&gt;"
End If

'***Husk at lukke connectionen til sidst.
rs.Close
cn.Close
Set cn = Nothing
%>



JEg har lagt nogle kommentar ind og håber det hjælper til forståelse af metoden. Eller bare spørg... jeg skal godt nok ud af døren for at se fodobld men jeg er tilbage senere i løbet af i aften.......
Avatar billede md_craig Nybegynder
17. april 2002 - 20:32 #8
Jo... den har jeg faktisk lavet.. men problem:

<< og >> kom til at stå over det der skulle udskrives... men jeg tror ikke det er et stort problem... så...

Dog skal det siget at du har fået mere orden over det end jeg har... men du kan måske tjene point alligevel fordi....

kig på

www.friserverplads.dk/vortex/Links.asp?kat_id=10&emne_id=8

under kategori i bunden skal der stå: side 'x'/'y' eller: side 'x' af 'y'
og under besrivelse skal der stå:  [ Forrige | Næste ]

altså jeg vil ikke have noget med gå tilside 1 2 3 4 5 osv...

hvis du kan lave det... så er der point... 120 af slagsen... OK ???

Du kan evt, oxo give din mening om siden...
Avatar billede eagleeye Praktikant
17. april 2002 - 22:26 #9
for at fjerne Gå til side 1, 2, 3, 4 osv fjernes dette kode:

'Her laves << og >> samt side nummer 1 2 3 4 osv...
Response.Write "<p>Gå til side "
For intNum = 1 To intPageCount
    ' Filnavnet skal være filnavet på denne fil, Request.ServerVariable("SCRIPT_NAME") giver automatisk filnavnet
    ' De variable som skal bruges til at søge med skal med i linket..
    ' - det er kat_id og emne_id
    ' - samt intPage nummer for at vise den rigtige side
    ' De kan også ligges i en Session varibale det kræver så at brugere har slået cookies til for det virker.
    Response.Write "<a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?page=" & intNum & "&kat_id=" & kat_id & "&emne_id=" & emne_id & """>" & intNum & "</a> "
Next
Avatar billede eagleeye Praktikant
17. april 2002 - 22:41 #10
Hmm jeg har lave i denne kode så der er x/y under kategori og [forrige | næste] under beskrivelse, samt 1 2 3 4 osv er fjernet. Det er lettere lige at vise hele koden igen:


<%
'*** Åbne connection
strPath = server.Mappath("db10.mdb")
strDSN = "provider = microsoft.jet.OLEDB.4.0; Data Source =" & strPath
set cn = server.createobject("ADODB.Connection")
Set rs = server.CreateObject("ADODB.RecordSet")
cn.open strDSN

'*** Linie 25
'*** Definere Kat_id ud fra et link (link.asp?kat_id=1)
kat_id = Request.QueryString("kat_id")
emne_id = Request.QueryString("emne_id")

'Hent start side nummeret hvis tomt eller forkert type sæt start side til 1
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
    intPage = 1
End If

'*** Åbne recordset for kategorivisning
straSQL = "SELECT emnenavn.emne_id, emnenavn.emne_navn, EmneKatNavn.EmneKat_ID, EmneKatNavn.Emne_Navn_tilhor, EmneKatNavn.EmneKat_link FROM emnenavn INNER JOIN EmneKatNavn ON emnenavn.EmneKat_ID = EmneKatNavn.EmneKat_ID WHERE (((emnenavn.emne_id)=" & Emne_id & "));"

Set rs2 = cn.Execute(straSQL)

'*** Linie 35
'*** Åbne recordset for linkvisning
strSQL = "SELECT Programering.Link, Programering.Beskrivelse, Programering.id, emnenavn.emne_id, emnenavn.emne_navn, Kategorinavn.Kat_id, Kategorinavn.Kat_navn, emnenavn.EmneKat_ID FROM (((Programering INNER JOIN emne ON Programering.id = emne.id) INNER JOIN kategori ON Programering.id = kategori.id) INNER JOIN Kategorinavn ON kategori.kat_id = Kategorinavn.Kat_id) INNER JOIN emnenavn ON emne.emne_id = emnenavn.emne_id WHERE (((emnenavn.emne_id)=" & Emne_id & ") AND ((Kategorinavn.Kat_id)=" & Kat_id & "));"

'Set rs = cn.Execute(strSQL)
'Ny måde at åbne tabellen på for at få adgang til paging via recordset'et.
rs.Open strSQL, cn, 1

response.write "<table border=0 cellspacing=0 cellpadding=0 width=531>"
response.write "<tr>"
response.write "<td height=10></td>"
response.write "</tr>"
response.write "<tr>"
response.write "<td height=15 align=center><font size=4 face=tahoma><b>"
response.write rs2("Emne_Navn_tilhor")

response.write "</b></font></td></tr><tr><td height=5></td></tr><tr><td height=12 align=center>"
response.write rs2("EmneKat_link")
response.write "<br><hr>"
response.write "</td></tr><tr><td>"

response.write "<table border=0 Cellspacing=2 cellpadding=2 align=center width=531>"
response.write "<tr>"
response.write "<td width=50 Align=center>Kategori</td>"
response.write "<td width=150 Align=center>Link</td>"
response.write "<td width=331 Align=center>Beskrivelse</td>"
response.write "</tr>"

'Udregner og sættet hvis side fra recordset'et som skal udskrives
If Not (rs.BOF Or rs.EOF) Then
  rs.PageSize = 10              '<-------- Angiv antal record pr side der skal vises
  rs.AbsolutePage = intPage    'Angiver hvilken side Record setet skal gå til
  intRecCount = rs.PageSize    'Recordset'et udregner hvor mange der kan/skal vises pr side.
  intPageCount = rs.PageCount  'Recordset'et udregner hvor mange sider der er total i recordsetet.
end if

Do While Not rs.EOF And intRecCount > 0
  'tæl hvor mange record som er udskrevet ved at tælle intRecCount ned til 0..
  intRecCount = intRecCount - 1
'*** Til Debug
'* response.write "debug"
'* response.end
'*** Linie 45
'*** Udskrive Data
'*** Udskrive Data
response.write "<tr><td width=55 align=center valign=top BGcolor=#DDDDFF>"
response.write rs("Kat_navn")
response.write "</td><td width=220 valign=top BGcolor=#DDDDFF><a href="
response.write rs("Link")
response.write " Target=_blank>"
response.write rs("Link")
response.write "</a></td>"
response.write "</td><td width=256 valign=top BGcolor=#DDDDFF>"
response.write rs("Beskrivelse")
response.write "</td></tr>"

rs.MoveNext
Loop

'Lav side/max_side under katergori
response.write "<tr><td width=55 align=center valign=top BGcolor=#DDDDFF>"
Response.Write intPage & "/" & intPageCount  '<---- Udskriv side/max_side
response.write "</td>"
'Under link.. den skal være tom
response.write "<td width=220 valign=top BGcolor=#DDDDFF>"
response.write "</td>"
'LAv [ Forrige | Næste ] under beskrivelse
response.write "<td width=256 valign=top BGcolor=#DDDDFF>"
response.write "[ "
If Clng(intPage) > 1 Then
    ' Filnavnet skal være filnavet på denne fil, Request.ServerVariable("SCRIPT_NAME") giver automatisk filnavnet
    ' De variable som skal bruges til at søge med skal med i linket..
    ' - det er kat_id og emne_id
    ' - samt intPage nummer for at vise den rigtige side
    ' De kan også ligges i en Session varibale det kræver så at brugere har slået cookies til for det virker.
    Response.Write "<a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?page=" & intPage - 1 & "&kat_id=" & kat_id & "&emne_id=" & emne_id & """>Forrige</a>"
Else
    Response.Write "Forrige"
End If
response.write " | "
If Clng(intPage) < Clng(intPageCount) Then
    Response.Write "<a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?page=" & intPage + 1 & "&kat_id=" & kat_id & "&emne_id=" & emne_id & """>Næste</a> "
Else
    Response.Write "Næste"
End If
response.write " ]"
response.write "</td></tr>"
response.write "</table>"

'***Husk at lukke connectionen til sidst.
rs.Close
cn.Close
Set cn = Nothing
%>
Avatar billede md_craig Nybegynder
18. april 2002 - 11:08 #11
Der var lidt justeringer i forhold til dit... men det lærte jeg bare noget mere ved... men jeg lave lige et spm... så får du 50% af point...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester