 Källkoden för /anders.enges/asp/db3.asp
 Källkoden för /anders.enges/asp/db3.asp 
<!--  #include file="../inc/navstuff.asp" -->
<!--  
      Denna rad inkuderar en fil som innehåller min strConn konstant
      Se kapitlet "Enkel Listning" för dess innehåll 
-->
<!--  #include file="../inc/connection.asp" -->
Nedan finns ett exempel på bläddring i en databas ett antal rader åt gången:<p>
<!--
      Nedan kommer texterna som sätts på knapparna. Ändra INTE i själva knappen
      utan ändra här om du vill ha en annan text.
      Konstanternas betydelse:
        nav_FIRST  - Texten som kommer på en knapp som går till FÖRSTA sidan 
        nav_LAST   - Texten som kommer på en knapp som går till SISTA sidan 
        nav_PREVIOUS   - Texten som kommer på en knapp som går till FÖREGÅENDE sida 
        nav_NEXT  - Texten som kommer på en knapp som går till NÄSTA sida
      Dessutom finns här:
        nav_METHOD - GET eller POST beroende på hur du vill att datat skall sändas
        nav_ROWCOUNT - hur många rader som skall visas per sida
        nav_SQL - den SQL SELECT sats som ger resultattabellen som skall listas
-->
<%
  Const nav_FIRST = "   <<      "
  Const nav_LAST = "   >>   "
  Const nav_PREVIOUS = "   <      "
  Const nav_NEXT = "   >   "
  Const nav_METHOD = "GET"
  Const nav_ROWCOUNT = 4
  Const nav_SQL = "SELECT * FROM EXEMPELDATA ORDER BY aTEXT"
%>
<!--  
      Nedanstående kodblock skall du INTE ändra på. Fungerar med ALLA tabeller
      förutsatt att du ändrar på SELECT statsen ovan
-->
<!--  GENERELL KOD FÖR BLÄDDRING -->
<!--  Skulle gå att sätta i en skild fil som inkluderas vid behov -->
<%
  nav_PreviousPage = Request("PREV_PAGE")
  Set nav_Conn = Server.CreateObject("ADODB.Connection")
  nav_Conn.Open strConn
  Set nav_RS = Server.CreateObject("ADODB.RecordSet")
  nav_RS.Open nav_SQL, nav_Conn, 1, 1
  nav_RS.PageSize = nav_ROWCOUNT
  nav_MAX = nav_RS.PageCount
  if Request("SCROLL") <> "" Then
     	Select Case Request("SCROLL")
          		Case nav_PREVIOUS
               			nav_PAGENO = nav_PreviousPage - 1
          		Case nav_NEXT
               			nav_PAGENO = nav_PreviousPage + 1
          		Case nav_FIRST
               			nav_PAGENO = 1
          		Case nav_LAST
               			nav_PAGENO = nav_MAX
     	End Select
     	if nav_PAGENO <  1 Then 
          		nav_PAGENO = 1
     	end if
     	if nav_PAGENO > nav_MAX Then 
          		nav_PAGENO = nav_MAX
     	end if
  else
     	' första gången till sidan - ta fram rad ett
     	nav_PAGENO = 1
  end if
  nav_ROW = (nav_PAGENO - 1) * nav_ROWCOUNT + 1
  ' Stöder databasen bookmark? (Access och SQL Server borde göra detta)
  harBookmark= nav_RS.Supports(8192)
  If harBookmark Then
     	nav_RS.AbsolutePage = nav_PAGENO
  Else
     	' Annars måste vi köra en klumpigare metod
     	nav_RS.MoveFirst
     	nav_RS.Move nav_PAGENO - 1
  End If
%>
<!--  GENERELL KOD FÖR BLÄDDRING TOG SLUT -->
<!--  
      Nedanstående form kan du modifiera på följande sätt:
      Om du inte vill ha en "gå till första knapp" tar du bort HELA raden
      som skapar denna knapp. man kan även ta bort 
      andra knappar genom att ta bort deras <INPUT... rader
      Du kan även flytta HELA formen till den punkt som 
      utmärks av kommentaren 
      DU KAN ÄVEN SÄTTA NAVIGATIONSFORMEN I SIN HELHET PÅ DENNA PLATS
      Rör inte HIDDEN fältet men namnet PREV_PAGE . 
      Den MÅSTE finnas i formen
-->
<!--  NAVIGATIONS FORMEN BÖRJAR -->
  <FORM METHOD="<%  =nav_METHOD %>">
  <!--  Knappen som går till första sidan -->
     	<INPUT TYPE="SUBMIT" NAME="SCROLL" VALUE="<%  =nav_FIRST %>">
  <!--  Knappen som går till föregående sida -->
     	<INPUT TYPE="SUBMIT" NAME="SCROLL" VALUE="<%  =nav_PREVIOUS %>">
  <!--  Knappen som går till nästa sida -->
     	<INPUT TYPE="SUBMIT" NAME="SCROLL" VALUE="<%  =nav_NEXT %>">
  <!--  Knappen som går till sista sidan -->
     	<INPUT TYPE="SUBMIT" NAME="SCROLL" VALUE="<%  =nav_LAST %>">
  <!--  DEN FÖLJANDE RADEN MÅSTE VARA KVAR -->
     	<INPUT TYPE="HIDDEN" NAME="PREV_PAGE" VALUE="<%  =nav_PAGENO %>">
  </FORM>
<!--  NAVIGATIONS FORMEN TOG SLUT -->
<!--  
      Vi har tillgång till variablerna:
          nav_PAGENO - säger vilken sida vi är på
          nav_MAX - säger vilken sida som är den sista
          nav_RS - det recordset som ger tabellens innehåll
          nav_ROW - tabellrad för den första visade raden 
-->
<!--  
      Följande rad sätter in nav_PAGENO och nav_MAX innan vi
      börjar listningen.
-->
Sidan <%  =nav_PAGENO %>  av <%  =nav_MAX %><br>
<!--  Vi skapar en tabell att sätta data i -->
  <table border=0 cellspacing="0" cellpadding="5" width="400">
<!--  Nedanstående två rader skall du inte ändra -->
<%    
  raden = 0
  Do While Not nav_RS.EOF And raden <  nav_ROWCOUNT 
%>
<!--  
      Här börjar en tabellrad. Kommer att upprepas 
      Se nav_rowColor funktionen längre ner på sidan 
      för förklaring till denn asp kod
-->  
          		<tr bgcolor="<%  =nav_rowColor %>">
               			<!--  Först en cell med en radnummer -->
               			<td align="right">
                    				<%  =nav_ROW + raden %>
               			</td>
               			<!--  och sedan innehållet i ett fält med namnet TEXT -->
               			<td>
                    				<%  =nav_RS("aTEXT") %>
               			</td>
          		</tr>
<!--  Tabellraden tog slut -->
<!--  Ändra inte nedanstående rader -->
<%  
     	raden = raden + 1
     	nav_RS.MoveNext
  Loop
%>
</TABLE>
<!--  tabelllistningen tog slut -->
<!--  DU KAN ÄVEN SÄTTA NAVIGATIONSFORMEN I SIN HELHET PÅ DENNA PLATS -->
<!--  Vi måste stänga våra objekt -->
<%
  nav_RS.Close
  nav_Conn.Close
  Set nav_RS = nothing
  Set nav_Conn = nothing
%>
<!--  Nu är de stängda och frigjorda -->
<!--  
      Nedanstående funktion används för att byta färg på tabellraderna .
      Den första raden sätts till #FFFFCC
      den andra till #CCFFFF
      sedan upprepas dessa färgväxlingar
-->
<%
  Dim	nav_ColorSwitcher
  Function nav_rowColor()
     	if nav_ColorSwitcher Then
          		nav_rowColor = "#CCFFFF"
     	Else
          		nav_rowColor = "#FFFFCC"
     	End If
     	nav_ColorSwitcher = Not nav_ColorSwitcher
  End Function
%>
<hr>
Koden är kanske inte optimal ur prestandasynvinkel, utan jag har försökt 
göra en kod som enkelt går att modifiera för sina egna behov<p>
För att inte beföva skriva samma sak två gånger så har jag 
kommenterat koden.<br> 
Klicka på "Visa ASP koden för denna sida" länken nedan för förklaringar<p>
<!--  den följande raden inkluderar min standard footer -->
<!--#include file="../inc/footer.asp" -->