Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Artiklar / Titel på artikeln

Paging! Hur man delar upp ett recordset på flera sidor

Postad 2001-09-19 av Patrik Berggren i sektionen ASP.NET, C#, Okategoriserat med 0 Kommentarer | Läst av: 5964, Betyg: 93%

Förord

Ett av de vanligaste problem som återkommer med jämna mellanrum är: PAGING, hur delar man upp ett recordset på flera sidor. Varför vill man då dela upp ett recordset på flera olika sidor? Tänk dig att du har tex ett nyhets script och besökaren har ett alternativ att se alla nyheter. Till en början är det inte så farligt eftersom det ligger ett fåtal nyheter. Men efter ett tag, då det har fyllts på med ett antal nyheter (flera hundra) är det inte speciellt roligt att komma till den sidan. Dels kommer den att ladda långsamt, man måste scrolla flera "skärm fönster" etc. Pagingen i denna artikel fungerar INTE på chilliASP!
Innehåll
  » Skapa och öppna recordsetet för paging
  » Subrutinen för sidnavigeringen
  » Var denna artikeln användbar?


Skapa och öppna recordsetet för paging



<%
'## -- skapa connection object och öppna databasen --
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "DSN"

'## -- hur många poster ska visas per sida --
intPageSize = 10 '## -- byt ut till hur många poster du vill ska visas per sida --

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

*## -- kontrollera så att inte intPage variabeln är tom --
If intPage = "" Then intPage = 1 '## -- visa första sidan som default --

'## -- sql-fråga för att hämta data från databasen --
strSQL = "SELECT fld_news_id, fld_news_header, fld_news_body FROM tbl_news ORDER BY fld_news_date DESC"

'## -- skapa och öppna recordsetet --
Set objRS = Server.CreateObject("ADODB.Recordset")
With objRS
.ActiveConnection = objConn
.Source = strSQL

'## -- bestämmer hur många poster som varje sida ska bestå av i recordsetet --
.PageSize = intPageSize
.CursorType = 3
.LockType = 1
.Open
End Wit

'## -- kontrollera om några poster har returnerats eller inte --
If Not objRS.EOF Then
'## -- poster har returnerats --

'## -- visa rätt sida i recordsetet --
objRS.AbsolutePage = intPage

'## -- hur många sidor består recordsetet av --
intTotalPages = objRS.PageCount

'## -- visa sidnavigeringen --
Call PageNavigation(intPage, intTotalPages)

'## -- loopa igenom recordsetet och visa posterna för besökaren/användaren --
Do Until objRS.EOF OR intCounter >= intPageSize
intCounter = intCounter + 1

'## -- printa ut informationen till besökare/användaren --

objRS.MoveNext
Loop
Else
'## -- inga poster returnerades --
'## -- visa meddelande att inga poster hittades för användaren --
End If

'## -- rensa up --
objRS.Close
Set objRS = Nothing

objConn.Close
Set objconn = Nothing

'## -- visa sidnavigeringen --
Call PageNavigation(intPage, intTotalPages)

'## -- include filen nedan innehåller själva subrutinen för sidnavigeringen --
%>



Subrutinen för sidnavigeringen

Och slutligen själva subrutinen som visar själva sidnavigeringen genom recordsetet.
Spara denna sub i en egen fil för att kunna återanvändas på andra sidor, andra siter etc.


<%
Sub PageNavigation(ByVal Page, TotalPages)
Dim strScriptName

'## -- denna sidas namn --
strScriptName = Request.ServerVariables("SCRIPT_NAME")

'## -- länk till föregående sida --
'## -- kontrollera att det inte är första sidan som visas --
If CInt(Page) > 1 Then
'## -- inte första sidan som visas så gör en länk --
Response.Write "<< Föregående "
Else
'## -- det är första sidan som ska visas. gör ingen länk --
Response.Write "<< Föregående "
End If

'## -- bygg upp själva pagebaren, dvs varje sidnummer ska ha en länk
'## -- så att besökaren snabbt kan ta sig till rätt sida --
For N = 1 To CInt(TotalPages)
If N <> CInt(Page) Then
'## -- ej aktuell sida, länka --
Response.Write "" & N & " "
Else
'## -- aktuell sida, länka ej --
Response.Write "" & N & " "
End If
Next

'## -- länk till nästa sida. om vi står på sista sidan ska den ej vara länkad --
If CInt(Page) < CInt(TotalPages) Then
'## -- vi är inte på sista sidan --
Response.Write "Nästa >>"
Else
'## -- vi är på sista sidan. länka ej --
Response.Write "Nästa >>"
End If

End Sub

Hoppas att detta har rätat ut ett par frågetecken som ni eventuellt kunde ha angående Paging.


Var denna artikeln användbar?

Om du gör någon intressant (eller kanske något konstigt fel) på grund av detta material så skicka gärna det med ett mail eller bifoga en länk till mig så presenterar jag detta som ytterligare exempelfiler för kursen. Om detta innehållet är felaktigt eller du lärt dig fler finesser så skriv gärna en rad eller varför inte en egen kurs baserat på dina erfarenheter. Sänd gärna in dina tips till denna kurs.

/Patrik Berggren - Pastille Interactive AB
Upp

0 Kommentarer

Skriv en kommentar på artikeln

Ditt betyg på artikeln



Kommentar:





Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 158
27 952
271 704
1 268
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies