DevTrain Startseite Advanced Developers Conference vom 14.-15. Februar 2011  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren


   Autor: Bernhard Elbl Artikel Drucken
        
AbsolutePage von ADO - 5 Datensätze pro Seite anzeigen

Das Ausgeben von einer begrenzten Anzahl von Datensätzen pro (ASP-)Seite ist eine oft benötigte Sache. Wir finden dies z.B. in wahrscheinlich jeder Suchmaschine. Wer mit ADO arbeitet, um DB´s anzusprechen, kann hierfür die AbsolutePage-Eigenschaft von A(ccess)D(ata)O(bject) verwenden. Ziel ist es, z.B. 5 Datensätze pro Seite anzuzeigen, UND per Buttons die vorherigen oder die nächsten 5 Datensätze abzufragen und auszugeben.

Welche Eigenschaften des ADO-Recordsets sollte man kennen...
PageSize = legt die Anzahl der Datensätze einer Seite fest
PageCount = beinhaltet die Anzahl der Seiten der kompletten Tabelle (abhängig von PageSize)
AbsolutePage = die aktuelle Seite auf der man sich befindet

 

Jetzt können wir loslegen. So werden jeweils 5 Datensätze pro Seite ausgeben. Per Button kann man sich vorwärts oder rückwerts durch das Recordset bewegen.
absolutepage.asp
Wenn ein Button gedrückt wurde, dann Hidden-Field mit "Request.Form" auslesen und von der aktuellen Seitennummer 1 abziehen oder zurechnen. Ansonsten den Startwert 1 für die Seitenvariable "strActPage" festlegen.
...... hier Script-Beginn im HTMLBODY
<%
if request.Form("backward") = "vorherige Seite" then
 strActPage = cint( request.Form("txtPosition") ) - 1
elseif request.Form("forward") = "naechste Seite" then
 strActPage = cint( request.Form("txtPosition") ) + 1
else
 strActPage = 1
end if
set conn = Server.CreateObject("ADODB.Connection")
set rs = Server.CreateObject("ADODB.Recordset")
conn.Open '<<<< hier ConnectionString eintragen>>>>>
rs.Open "customers", conn, adOpenStatic, adLockOptimistic

Hier kommt der entscheidende Part. Die PageSize(Seitengroesse des Recordsets wird auf 5 gesetzt.
Die aktuelle Seitennummer(strActPage) wird der "AbsolutePage"-Eigenschaft zugewiesen.
Somit steht uns die Anzahl der Seiten(PageCount) zur Verfügung.
rs.PageSize=5
rs.AbsolutePage=strActPage
response.Write "<b>Das ist die Seite: " & rs.AbsolutePage & " von insgesamt: " & rs.PageCount & "</b><br><br>"

Mit der Wiederholung werden alle Datensätze der aktuellen Seite ausgeben. Wenn der letzte Datensatz des Recordsets(EOF) erreicht ist, wird die Wiederholung mit "Exit For" verlassen.
 for i = 1 to rs.PageSize
  response.Write rs.Fields(0) & " : " & rs.Fields(1) & "<br>"
  rs.MoveNext
  if rs.EOF then exit for 
 next
set rs = nothing
set conn = nothing
%>

Jetzt brauchen wir noch eine HTML-Form. Ich verwende hier die Methode "POST" um Informationen, wie welcher Button wurde gedrückt, oder welchen Inhalt hat mein Hidden-Field, vom Client zum Server zu übermitteln. Die Value-Eigenschaft des Hidden-Fields wird mit der aktuellen Seitenummer gefüllt.
<form method="POST" action="">
<input type="hidden" name= "txtPosition"value="<%=strActPage%>">
<INPUT type="submit" value="vorherige Seite" name="backward">
<INPUT type="submit" value="naechste Seite" name="forward">
</form>



DevTrain Camp - Schneller zum .NET 3.5 Developer
 
Verwandte Artikel      Verlinkte Dokumente
    Keine verknüpften Dokumente
    Keine Links vorhanden

  Erfasst am: 07.09.2001
  Gültig bis: 07.10.2001
121 Ratings
Bewertung: 73,4%
schlecht    sehr gut  

 
© Copyright 2007 ppedv AG