Avatar billede pelskee Nybegynder
26. marts 2004 - 09:42 Der er 25 kommentarer og
1 løsning

Bladrefunktion der viser antal sider

jeg har en funktion der viser hvor mange sider brugeren kan bladre i produkterne, men den må maks vise 10 sider af gangen og så skal der komme sådan en pil så den viser side 11 - 20. hvordan kan det lade sig gøre at implementere det i nedenstående kode ?

<%
TM_counter = 0
For i = 1 to rsBestBuy_total Step MM_size
TM_counter = TM_counter + 1
TM_PageEndCount = i + MM_size - 1
if TM_PageEndCount > rsBestBuy_total Then TM_PageEndCount = rsBestBuy_total
if i <> MM_offset + 1 then
Response.Write("<a href=""" & Request.ServerVariables("URL") & "?" & MM_keepMove & "offset=" & i-1 & """>")
Response.Write(TM_counter & "</a>")
else
Response.Write("<b>" & TM_counter & "</b>")
End if
if(TM_PageEndCount <> rsBestBuy_total) then Response.Write("&nbsp;|&nbsp;")
next
%>
Avatar billede nute Nybegynder
26. marts 2004 - 09:58 #1
kig lidt på denne artikel ... den er god hvis du skal lære om paging (bladring):

http://activedeveloper.dk/artikler/default.asp?articleid=31

/nute
Avatar billede pelskee Nybegynder
26. marts 2004 - 10:03 #2
der bliver stillet samme spørgsmål nede i teksten:

Kommentar fra  BoyScout (25-10-2001)
Har du et tip til, hvordan man får listen over pages til kun at vise f.eks. max 3 stk. af gangen?
F.eks. start med side 1
<< | 1 | 2 | 3 | >>

Når man så klikker på side 3, så skal den vise
<< | 2 | 3 | 4 | >>

Og så fremdeles... Nogen ideer???
Avatar billede nute Nybegynder
26. marts 2004 - 10:11 #3
hmm ... svarer ikke den sidste kommentar, på dette spm ?!
Avatar billede pelskee Nybegynder
26. marts 2004 - 10:17 #4
my bad nute - jeg må stadig ligge og sove...
men jeg kan ikke se hvilket recordset han hæfter koden på...

<%
Const cTopicPrPage      = 15        'Antal Threats/Topics/Emner pr. side, når man lister i forum.
Const cMaxIndex        = 9          'Antal Sider i index.
Dim ii, LavLimit, HojLimit, LavPunktum, HojPunktum

'Index over Paging START
If intPageCount > cMaxIndex Then
  If intPage >= (cMaxIndex\2) Then
    HojLimit  = intPage + (cMaxIndex\2)
    LavLimit  = intPage - (cMaxIndex\2)
  End If
  If intPage < (cMaxIndex\2) Then
    HojLimit  = intPage + (cMaxIndex\2)
    LavLimit  = intPage - (cMaxIndex\2)
  End If
  If LavLimit < 1 Then
    LavLimit = 1
    HojLimit = cMaxIndex + 1
    HojPunktum = "...&nbsp;"
  End If
  If HojLimit > intPageCount Then
    HojLimit = intPageCount
    LavLimit = HojLimit - cMaxIndex
    LavPunktum = "...&nbsp;"
  End If
Else
  LavLimit = 1
  HojLimit = intPageCount
End If
Response.Write "<table>"
Response.Write "<tr><td>&nbsp;Sider:&nbsp;(" & intPageCount & ")&nbsp;"
Response.Write "<a href=""?side=1"">&lt;</a>&nbsp;"
Response.Write LavPunktum
For ii = (LavLimit) to HojLimit
  If cInt(intPage) = cInt(ii) Then
    Response.Write "[" & ii & "]&nbsp;"
  Else
    Response.Write "<a href=?side=" & ii & ">" & ii & "</a>&nbsp;"
  End If
Next
Response.Write HojPunktum
Response.Write "<a href=""?side=" & intPageCount & """>&gt;</a>"
Response.Write "</td></tr></table>"
'Index over Paging SLUT
%>
Avatar billede nute Nybegynder
26. marts 2004 - 10:20 #5
det ser ud til at koden skal erstatte udskrivningen af links, i den orginale koden:

Set rs = Nothing

' ##### HER SKAL NOK KODEN IND #####

' ##### ALT KODEN NEDENFOR DETTE, I DEN ORGINALE KODE, SKAL SLETTES #####
Response.Write "<p>Gå til side "
For intNum = 1 To intPageCount
  Response.Write "<a href=paging.asp?page=" & intNum & ">" & intNum & "</a> "
Next

Response.Write "<p>"
If Clng(intPage) > 1 Then
  Response.Write "<a href=paging.asp?page=" & intPage - 1 & ">&lt;&lt;</a>"
Else
  Response.Write "&lt;&lt;"
End If

/nute
Avatar billede pelskee Nybegynder
26. marts 2004 - 10:34 #6
like this:

<%
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
  intPage = 1
End If

Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT LinkURL FROM Links"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("/aspdigital/db/demo.mdb")
rs.Open strSQL, strDSN, 1
If Not (rs.BOF Or rs.EOF) Then
  rs.PageSize = 10
  rs.AbsolutePage = intPage
  intRecCount = rs.PageSize
  intPageCount = rs.PageCount
  Response.Write "<p><b>Side " & intPage & " af " & intPageCount & "</b></p>"
  Do While Not rs.EOF And intRecCount > 0
    Response.Write rs("LinkURL") & "<br>"
  intRecCount = intRecCount - 1
  rs.MoveNext
  Loop
End If
rs.Close
Set rs = Nothing

Const cTopicPrPage      = 15        'Antal Threats/Topics/Emner pr. side, når man lister i forum.
Const cMaxIndex        = 9          'Antal Sider i index.
Dim ii, LavLimit, HojLimit, LavPunktum, HojPunktum

'Index over Paging START
If intPageCount > cMaxIndex Then
  If intPage >= (cMaxIndex\2) Then
    HojLimit  = intPage + (cMaxIndex\2)
    LavLimit  = intPage - (cMaxIndex\2)
  End If
  If intPage < (cMaxIndex\2) Then
    HojLimit  = intPage + (cMaxIndex\2)
    LavLimit  = intPage - (cMaxIndex\2)
  End If
  If LavLimit < 1 Then
    LavLimit = 1
    HojLimit = cMaxIndex + 1
    HojPunktum = "...&nbsp;"
  End If
  If HojLimit > intPageCount Then
    HojLimit = intPageCount
    LavLimit = HojLimit - cMaxIndex
    LavPunktum = "...&nbsp;"
  End If
Else
  LavLimit = 1
  HojLimit = intPageCount
End If
Response.Write "<table>"
Response.Write "<tr><td>&nbsp;Sider:&nbsp;(" & intPageCount & ")&nbsp;"
Response.Write "<a href=""?side=1"">&lt;</a>&nbsp;"
Response.Write LavPunktum
For ii = (LavLimit) to HojLimit
  If cInt(intPage) = cInt(ii) Then
    Response.Write "[" & ii & "]&nbsp;"
  Else
    Response.Write "<a href=?side=" & ii & ">" & ii & "</a>&nbsp;"
  End If
Next
Response.Write HojPunktum
Response.Write "<a href=""?side=" & intPageCount & """>&gt;</a>"
Response.Write "</td></tr></table>"
'Index over Paging SLUT
%>
Avatar billede nute Nybegynder
26. marts 2004 - 10:39 #7
yup ... det ser sådan ud.

Dette er ikke testet, fra min side, men det ser umiddebart ud til at det er sådan det skal være
Avatar billede pelskee Nybegynder
15. april 2004 - 09:40 #8
den driller, jeg har ændret den, men den fejler i linie 21:  rs.AbsolutePage = intPage


koden:
<%
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
  intPage = 1
End If

Set rs = Server.CreateObject("ADODB.Recordset")
rs.ActiveConnection = MM_scandlines_STRING
rs.Source = "SELECT *  FROM Vin  WHERE Salgstype = 'Best Buy' AND Aktiv_Dansk = 'Y'"
rs.Open
If Not (rs.BOF Or rs.EOF) Then
  rs.PageSize = 10
  rs.AbsolutePage = intPage
  intRecCount = rs.PageSize
  intPageCount = rs.PageCount
  Response.Write "<p><b>Side " & intPage & " af " & intPageCount & "</b></p>"
  Do While Not rs.EOF And intRecCount > 0
    Response.Write rs("LinkURL") & "<br>"
  intRecCount = intRecCount - 1
  rs.MoveNext
  Loop
End If
rs.Close
Set rs = Nothing

Const cTopicPrPage      = 15        'Antal Threats/Topics/Emner pr. side, når man lister i forum.
Const cMaxIndex        = 9          'Antal Sider i index.
Dim ii, LavLimit, HojLimit, LavPunktum, HojPunktum

'Index over Paging START
If intPageCount > cMaxIndex Then
  If intPage >= (cMaxIndex\2) Then
    HojLimit  = intPage + (cMaxIndex\2)
    LavLimit  = intPage - (cMaxIndex\2)
  End If
  If intPage < (cMaxIndex\2) Then
    HojLimit  = intPage + (cMaxIndex\2)
    LavLimit  = intPage - (cMaxIndex\2)
  End If
  If LavLimit < 1 Then
    LavLimit = 1
    HojLimit = cMaxIndex + 1
    HojPunktum = "...&nbsp;"
  End If
  If HojLimit > intPageCount Then
    HojLimit = intPageCount
    LavLimit = HojLimit - cMaxIndex
    LavPunktum = "...&nbsp;"
  End If
Else
  LavLimit = 1
  HojLimit = intPageCount
End If
Response.Write "<table>"
Response.Write "<tr><td>&nbsp;Sider:&nbsp;(" & intPageCount & ")&nbsp;"
Response.Write "<a href=""?side=1"">&lt;</a>&nbsp;"
Response.Write LavPunktum
For ii = (LavLimit) to HojLimit
  If cInt(intPage) = cInt(ii) Then
    Response.Write "[" & ii & "]&nbsp;"
  Else
    Response.Write "<a href=?side=" & ii & ">" & ii & "</a>&nbsp;"
  End If
Next
Response.Write HojPunktum
Response.Write "<a href=""?side=" & intPageCount & """>&gt;</a>"
Response.Write "</td></tr></table>"
'Index over Paging SLUT
%>
Avatar billede nute Nybegynder
15. april 2004 - 09:53 #9
mon ikke det ville hjælpe hvis du postet fejlmeddelelsen også ??
Avatar billede pelskee Nybegynder
15. april 2004 - 09:58 #10
sorry:

ADODB.Recordset error '800a0cb3'

Unknown runtime error

/test.asp, line 21
Avatar billede nute Nybegynder
15. april 2004 - 10:02 #11
hmm ... og du er sikker på at du har en værdi i 'intPage' ? prøv at skrive den ud ..
Avatar billede pelskee Nybegynder
15. april 2004 - 10:19 #12
skal jeg kalde siden med et intPage værdi ?
Avatar billede nute Nybegynder
15. april 2004 - 10:48 #13
du har jo denne stump kode:

intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
  intPage = 1
End If

og du har denne linie kode:

rs.AbsolutePage = intPage (linie 21)

hvis 'intPage' ikke indeholder noget, så vil den jo klart fejle. og siden dete er i denne linie det opstår en fejl, er det nærliggende at tjekke for om du faktisk har en værdi i denne variabel.

/nute
Avatar billede pelskee Nybegynder
15. april 2004 - 10:53 #14
okay - tak nute

det er ikke fordi jeg vil pisse dig af, men jeg ved ikke hvordan jeg kan teste intPage
Avatar billede nute Nybegynder
15. april 2004 - 10:56 #15
som jeg har skrevet tidligere: skriv den ud.

Response.Write( "intPage = " & intPage & "<br>" )

/nute
Avatar billede pelskee Nybegynder
15. april 2004 - 11:09 #16
intPage =

ADODB.Recordset error '800a0cb3'

Unknown runtime error

/test.asp, line 22
Avatar billede pelskee Nybegynder
15. april 2004 - 11:11 #17
også selvom jeg prøver med: http://www.border-wines.dk/test.asp?page=2
som han gør i eksemplet fra det link du postede
Avatar billede nute Nybegynder
15. april 2004 - 11:14 #18
Well ... der kan du jo se at du ikke har en værdi i 'intPage' ... det skal det jo være
Avatar billede pelskee Nybegynder
15. april 2004 - 11:18 #19
men gør denne kodestump netop ikke at den sætter indpage til 1 hvis den ikke er defineret i URLen ?

intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
  intPage = 1
End If
Avatar billede nute Nybegynder
15. april 2004 - 11:26 #20
har du testet om den faktisk kommer ind i if setningen ? du må lære dig at teste for dine variabler eller hvordan scriptet opfører sig. hvis det er et problem med, i dette tilfælde 'intPage', så må du finde ud af (at 'debugge' som det hedder på fagsproget) hvad denne variabel indeholder. Du ved allerede at denne variabel får sin værdi fra querystringen, du ved hvor værdien bliver sat og du ved hvilken værdi du forventer ... så bør det jo være meget nemt:

Response.Write( "Request('page') = '" & Request("page") & "'<br>" )
intPage = Request("page")
Response.Write( "intPage = '" & intPage & "'<br>" )
If isNumeric(intPage) = False Or intPage < 1 Then
    Response.Write( "If statement = True<br>" )
    intPage = 1
End If
Response.Write( "intPage = '" & intPage & "'" )

Hvis du sender med 'page=2' i din querystring, så bør denne stump kode resultere i dette:

Request('page') = '2'
intPage = '2'
intPage = '2'

alt andet vil være fejl. Hvis du får dette resultat, så er du nødt til "at følge" intPage variabelen helt ned til den linie hvor du skal bruge den. gør du noget ved den inden du skal bruge den i linie 21 ? ... prøv at finde ud hvorfor du ikke har en værdi i denne variabel. Det er *meget* svært for mig at sidde at debugge din kode ...

/nute
Avatar billede pelskee Nybegynder
02. juli 2004 - 11:40 #21
hej nute. sorry mht svartid
jeg kan ikke få det til at virke, men tak for hjælpen
skylder dig point så smid et svar :)
Avatar billede nute Nybegynder
06. juli 2004 - 09:20 #22
- svar -
Avatar billede pelskee Nybegynder
09. august 2004 - 10:29 #23
nute - jeg kan ikke se du har svaret...
Avatar billede nute Nybegynder
09. august 2004 - 10:32 #24
nææ ... jeg kan jo ikke ramme de rigtige taster :-|
Avatar billede pelskee Nybegynder
09. august 2004 - 15:13 #25
:)
Avatar billede nute Nybegynder
09. august 2004 - 15:15 #26
- takker -
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