Kategorien:
Suchbegriffe:
Suchfelder:
Suche starten
Neue Beiträge / Top 7
Alle Artikel / Liste
Bücher zu ASP/ASP.Net
Startseite / Hilfe
Fragen zu ASP/ASP.NET
Datenschutzrichtlinen
Impressum / Kontakt
Das ASP.Net Codebook. Die unentbehrliche Referenz für alle ASP.Net-Entwickler [Autoren: Stefan Falz, Karsten Samaschke]
Active Server Pages-FAQ
Active Server Pages - FAQ (v. 1.50) © 2000 - 2020 by Stefan Falz Webconsulting

GetFile! Dynamischer Dateiupload im Browser

Datenbankzugriffe Zurück Druckversion Stefan Falz 12.02.2001
Frage: Wie kann ich pro Seite 10 Datensätze anzeigen (mit Links auf weitere Seiten)
Sie kennen bestimmt aus Suchmaschinen die Möglichkeit, nicht alle Suchergebnisse auf einmal,
sondern z.B.: 10 Ergebnisse pro Seite anzeigen zu lassen. ADO stellt Ihnen alle Methoden bereit,
um dies einfach und effektiv zu bewerkstelligen

PageSize - stellt die Seitengröße ein (Anzahl Datensätze pro Seite)
PageCount - gibt die Anzahl der Seiten zurück
AbsolutePage - stellt die aktuelle Seite ein

Nachfolgend sehen Sie ein einfaches Beispiel für eine verteilte Auflistung von Suchergebnissen
mit jeweils 10 Datensätzen pro Seite. Hinter der Auflistung der Datensätze werden die Links
auf die weiteren verfügbaren Seiten dargestellt. (Weiter zu Seite: 1 2 3 ...)

[listpages.asp]
<%    
' --- Erstellen der Datenbankverbindung
Set objConn = Server.CreateObject("ADODB.Connection")
    objConn.Open "DSN", "UID", "PWD"

' --- SQL-Statement erstellen
Dim SQL
    SQL = "SELECT <spalte> FROM <tabelle> WHERE <suchspalte> = '" & <aspvariable> & "'"

' --- Definieren der Seitengröße (Anzahl Datensätze pro Seite)
Dim PageSize
    PageSize = 10

' --- Initialisieren des Counters
Dim intCounter
    intCounter = 1
    
' --- Einstellen der aktuellen Seite, weitere Prüfung
' --- erfolgt nach Öffnen des Recordsets
Dim AbsolutePage
    AbsolutePage = Request("PN")

' --- Erstellen des Recordsets
Set objRS = Server.CreateObject("ADODB.Recordset")

    ' --- Zuweisen der Seitengröße (Anzahl Datensätze pro Seite)
    ' --- Diese Zuweisung muss vor dem Öffnen des Recordsets erfolgen.
    objRS.PageSize = PageSize
    objRS.CacheSize = PageSize

    ' --- Öffnen des Recordsets
    objRS.Open SQL, objConn, 3, 3

    ' --- Prüfen, ob die angegebene Seitennummer verwendet werden kann
    If AbsolutePage = "" Or Not IsNumeric(AbsolutePage) Or CInt(AbsolutePage) > CInt(objRS.PageCount) Then
        AbsolutePage = 1
    End if

    ' --- Zuweisen der aktuellen Seite. Diese Zuweisung
    ' --- muss nach dem Öffnen des Recordsets erfolgen
    objRS.AbsolutePage = AbsolutePage

        ' --- x Datensätze anzeigen. Prüfung auf EOF (letzter Datensatz)
        ' --- und Anzahl der bisher ausgegebenen Datensätze (intCounter)
        ' --- muss erfolgen, da ansonsten zuviele Datensätze ausgegeben werden
        Do While Not objRS.EOF And intCounter <= PageSize

            ' --- Ausgabe des aktuellen Datensatzes
            Response.Write objRS.Fields("<spalte>") & "<br>"

            ' --- Erhöhen des Zählers zum Ermitteln der bisher ausgegebenen Datensätze
            intCounter = intCounter + 1

            ' --- Weiter zum nächsten Datensatz
            objRS.MoveNext
        Loop

    ' --- Erstellen der Links auf die weiteren Seiten
    For intPageCounter = 1 To objRS.PageCount

        ' --- Die aktuelle Seite wird nicht mehr verlinkt
        If CInt(intPageCounter) = CInt(AbsolutePage) Then
            Response.Write intPageCounter & " "
            Else
                Response.Write "<a href=""listpages.asp?PN=" & intPageCounter & """>" & intPageCounter & "</a> "
        End if

    Next

' --- Schliessen und terminieren des Recordsets
    objRS.Close
Set objRS = Nothing

' --- Schliessen und terminieren der Datenbankverbindung
    objConn.Close
Set objConn = Nothing
%>
Sehr gut
1 2 3 4 5 6
Ungenügend
Zurück | Bisherige Aufrufe: 40017 | Bisherige Bewertungen: 209 | Durchschnitt: 1,99
Stefan Falz Webconsulting