הדוגמא המובאת כאן היא התשובה לשאלה הנשאלת כל פעם מחדש, איך מחלקים את כל הרשימה הארוכה הזאת לדפים? אז הנה התשובה!
איך עושים את זה?
הנה הקוד מקור:
<%@ LANGUAGE="VBSCRIPT" %>
<%
Set cn = server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
cn.Open Samples_DSN
SQL = "select * from PHONE_BOOK" 'אם היינו עושים חיפוש המשפט היה שונה
PAGE = Request.QueryString("page")
if PAGE = "" Then PAGE = 1 'לבדוק שבאמת נשלח מספר הדף הנוכחי
NumOfRecInPage = Request.QueryString("numofrec")
if NumOfRecInPage = "" Then NumOfRecInPage = 5 'לבדוק שבאמת נשלח מספר הרשומות בדף
rs.PageSize = NumOfRecInPage
rs.CacheSize = rs.PageSize
rs.Open SQL,cn,3,1
NumOfRec = rs.RecordCount
NumOfPages = rs.PageCount
CurrentPage = PAGE
rs.AbsolutePage = CurrentPage
Response.Write ""
Response.Write "| " & NumOfRec & ": סה"כ רשומות | "
Response.Write "" & NumOfPages & ": מספר הדפים | "
Response.Write "" & CurrentPage & ": דף נוכחי | "
Response.Write "" & NumOfRecInPage & ": מספר רשומות בדף | "
Response.Write " "
Response.Write " | "
Response.Write ""
For i = 1 to NumOfRecInPage 'לעבור על הסט רשומות כמספר הרשומות שבדף אחד
Response.Write ""
Response.Write "| " & rs(3) & ""
Response.Write " | " & rs(2) & ""
Response.Write " | "
rs.MoveNext
if rs.EOF Then i = NumOfRecInPage
Next
Response.Write " | "
rs.Close
Set rs = nothing
cn.Close
Set cn = Nothing
Response.Write " | "
Pages = ""
if CurrentPage > 1 Then 'בדיקה אם יש צורך בקישור לדף הקודם
Pages = Pages & " << "
End if
For i = 1 to NumOfPages 'קישורים לשינוי הדף הנוכחי
if i <> Cint(CurrentPage) Then
Pages = Pages & " [" & i & "] "
Else
Pages = Pages & " [" & i & "] "
End if
Next
if Cint(CurrentPage) < Cint(NumOfPages) Then 'בדיקה אם יש צורך בקישור לדף הבא
Pages = Pages & " >> "
End if
Response.Write "| " & Pages & ": דף נוכחי | "
RecNum = ""
For i = 1 to 10 'קישורים לשינוי מספר הרשומות בדף
RecNum = RecNum & " [" & i & "] "
Next
Response.Write "| " & RecNum & ": מספר רשומות בדף | "
%>
הסברים כלליים
rs.RecordCount מחזיר את סה"כ מספר הרשומות rs.PageSize מחזיר או קובע את מספר הרשומות בכל דף ודף rs.CacheSize קוסע את מספר הרשומות שהאובייקט מקציב להן זיכרון Cache rs.PageCount מחזיר את מספר הדפים. זאת הוא מחשב ע"י חלוקה של סה"כ מספר הרשומות חלקי מספר הרשומות בכל דף rs.AbsolutePage מחזיר או קובע את הדף הנוכחי
|