我們知道:對于一個留言簿,如果我們只讓上網者能看到自己的留言而看不到其他人的留言,那么這類留言簿也就只能適用于某些特殊的地方(例如“客戶意見返饋表”或“投訴留言”之類的留言,因為假如你是老板的話,你也不會愿意將自己的“傷疤”隨便揭開給人看)。因此我們必須令每一位上網者都能看到留言簿中的所有留言。為了提高頁面的讀取速度,我們將留言簿中的留言分成多頁來顯示,每頁顯示一定數目的留言數,譬如5條。 講了這許多,那么到底如何實現留言記錄的分頁顯示功能呢?如果我們對ADO的Recordset對象清楚的話,其實實現起來并不難。因為進行ADO存取數據庫時的分頁顯示,就是對Recordset的記錄進行操作。因此在沒講解程序之前,我覺得很有必要先給大家介紹一下有關Recordset對象方面的知識。 主要的ADO對象有三個:Connection、Command和Recordset。Connection對象能夠建立數據與應用程序之間的聯系,在建立聯系后,Command和Recordset對象用來要求、存儲或更新數據。Command對象主要擔任數據庫查詢(Database Query)的角色,而 Recordset對象則是三者之中最為特別,功能亦最為強大,由數據取得的數據集合就存儲于Recordset中,該返回的Recordset數據集合取得后再通過服務器端的腳本語言環境加于處理、分析、顯示數據于客戶瀏覽器上。 現將Recordset對象所提供的所有內部屬性與其功能簡述羅列如下: AbsolutePage屬性--目前的絕對數據頁位置 AbsolutePosition屬性--目前的絕對數據位置 ActiveConnection屬性--與Connection、Command對象主動鏈接 BOF屬性--數據集的開頭邊界 Bookmark屬性--提供游標位置的書簽功能 CacheSize屬性--Recordset內數據所暫存的內存大小 CursorLocation屬性--控制游標的類型為服務器端或客戶端 CursorType屬性--控制如何由服務器端數據庫取回數據 EOF屬性--記錄集的結尾邊界 EditMode屬性--控制目前數據的處理狀態 Filter屬性--控制欲顯示或隱藏的數據內容 LockType屬性--控制數據更新的模式 MaxRecords屬性--允許由服務器端取回的最大記錄行數目 PageCount屬性--數據頁總數 PageSize屬性--控制每一數據頁內的記錄行 RecordCount屬性--由服務器端取回的記錄行總數 Source屬性--數據查詢信息 Status屬性--最近一行數據處理后的狀態或信息 在了解了Recordset對象的以上屬性和方法后,我們開始來學習如何實現留言記錄的分頁顯示功能。在以下的學習當中,前面幾章已學過的知識我在這里就不再贅述,我們只在這里重點學習處理留言記錄分頁的page2.asp文件。 '調用adovbs.inc文件和留言頁面self2.asp。 '-=此處已略去Web頁面的HTML代碼,具體內容可下載源代碼后查看=- 返回留言表單 <% If Page <> 1 Then Response.Write "< a="" href="page2.asp?Page=1">第一頁<>" Response.Write "< a="" href="page2.asp?Page=" "="" &="" (page-1)="" &="" "="">上一頁<>" End If If Page <> rs.PageCount Then Response.Write "< a="" href="page2.asp?Page=" "="" &="" (page+1)="" &="" "="">下一頁<>" Response.Write "< a="" href="page2.asp?Page=" "="" &="" rs.pagecount="" &="" "="">最后一頁 <>" End If %> 頁數:<%=Page%>/<%=rs.PageCount%> '<%=Page%>表示當前所在的頁碼,<%=rs.PageCount%>表示數據頁的總數。
|