ASP中七種實(shí)現(xiàn)分頁顯示的方法
來源:易賢網(wǎng) 閱讀:656 次 日期:2015-02-27 10:47:37
溫馨提示:易賢網(wǎng)小編為您整理了“ASP中七種實(shí)現(xiàn)分頁顯示的方法”,方便廣大網(wǎng)友查閱!

MS Visual InterDev6.0中七種實(shí)現(xiàn)分頁顯示的方法 我們?cè)诰幹婆c數(shù)據(jù)庫有關(guān)的Web網(wǎng)頁時(shí),由于要顯示的數(shù)據(jù)量巨大,常常面臨一個(gè)數(shù)據(jù)記錄分頁顯示的問題。

--------------------------------------------------------------------------------

進(jìn)行 ADO 存取數(shù)據(jù)庫時(shí)的分頁顯示,其實(shí)就是對(duì) Recordset 的記錄進(jìn)行操作。所以我們首先必須了解 Reordset 對(duì)象的屬性和方法:

BOF 屬性:目前指標(biāo)指到 RecordSet 的第一筆。

EOF 屬性:目前指標(biāo)指到 RecordSet 的最后一筆。

Move 方法:移動(dòng)指標(biāo)到 RecordSet 中的某一條記錄。

AbsolutePage 屬性:設(shè)定當(dāng)前記錄的位置是位于哪一頁

AbsolutePosition 屬性:目前指標(biāo)在 RecordSet 中的位置。

PageCount 屬性:顯示 Recordset 對(duì)象包括多少"頁"的數(shù)據(jù)。

PageSize 屬性:顯示 Recordset 對(duì)象每一頁顯示的記錄數(shù)。

RecordCount 屬性:顯示 Recordset 對(duì)象記錄的總數(shù)。

--------------------------------------------------------------------------------

在微軟的ASP編程體系中,ADO對(duì)象的建立,使得從網(wǎng)頁訪問數(shù)據(jù)庫成為一件易事,特別是ADO的Recordset對(duì)象使得控制數(shù)據(jù)的輸出顯示更為方便、自由。而在Visual InterDev6.0(以下簡稱VI6.0)中,由于Script Object Model(以下簡稱SOM)、Design-Time Control(以下簡稱DTC)以及Data Environment Object Model(以下簡稱DEOM)等對(duì)象模型的引入,使網(wǎng)頁對(duì)數(shù)據(jù)庫的訪問設(shè)計(jì)顯得更為方便。

因?yàn)橹黝}方面的原因,關(guān)于數(shù)據(jù)庫的連接,下文只給出代碼和簡要注釋,而把重點(diǎn)放在如何利用Recordset對(duì)象(或控件)實(shí)現(xiàn)數(shù)據(jù)記錄的分頁顯示方面。根據(jù)我的理解,分頁顯示的關(guān)鍵就在于對(duì)ADO的Recordset對(duì)象或DTC(設(shè)計(jì)時(shí)控件)的Recordset控件的屬性和方法的熟練把握上。

這七種分頁顯示的方法概括起來說分四類:

第一、二種我暫取名叫"純ASP法",這也是國內(nèi)的ASP網(wǎng)站上用得最多的方法,它們的區(qū)別僅在實(shí)現(xiàn)技巧的不同。這兩種方法的實(shí)現(xiàn)最易理解,用到的對(duì)象概念也最少,對(duì)開發(fā)環(huán)境的要求也最低(只要記事本就行)??梢哉f,這兩種方法的實(shí)質(zhì)還是CGI的編程思想,只是在程序中引入了ADO對(duì)象而已。

第四、五種暫取名叫"SOM的DHTML法"。這兩種方法要求在VI6.0的環(huán)境下,利用微軟提出的腳本對(duì)象模型(Script Object Model)和DHTML中Table對(duì)象的與數(shù)據(jù)庫綁定的新特性(許多書和文章只介紹了DHTML的CSS特性在樣式設(shè)計(jì)中的運(yùn)用而忽略介紹其數(shù)據(jù)綁定特性),實(shí)現(xiàn)在客戶端控制翻頁。但它要求用戶的瀏覽器必須是支持DHTML,如:Microsoft Internet Explorer 4.0及以上的版本。

第六種暫取名叫"SOM服務(wù)器端法"。要求在VI6.0的環(huán)境下開發(fā),它利用微軟提出的腳本對(duì)象模型(Script Object Model)中的幾個(gè)DTC控件:Recordset、PageObject、Grid等在服務(wù)器端(客戶端)實(shí)現(xiàn)翻頁控制。這是一種激動(dòng)人心的、全新的編程方法,它把網(wǎng)頁看成對(duì)象(這種對(duì)象模型和傳統(tǒng)的DOM----document object model是有區(qū)別的:DOM只能控制客戶端,而SOM可控制服務(wù)器端和客戶端),它真正實(shí)現(xiàn)了網(wǎng)頁的面向?qū)ο缶幊?。但遺憾的是,也許是我個(gè)人能力有限,這種技術(shù)我個(gè)人認(rèn)為還不是很成熟,比如,與瀏覽器的結(jié)合還不是很好,這將在后文詳細(xì)說明。

第七種暫取名叫"DEOM法"。它也是利用了VI6.0中建立的數(shù)據(jù)環(huán)境對(duì)象模型(Data Environment Object Model)建立Recordset對(duì)象。這也是在網(wǎng)頁編程上比較少見的新方法,與SOM模型相比,自有它的優(yōu)點(diǎn),這將在后文詳述。

在后面所舉的所有例子源代碼,都可以直接拷貝使用,你甚至可以不懂其原理,只要把其中的粗斜體字部分換成相應(yīng)自己的數(shù)據(jù)庫名或字段名就可以了。

在開始詳細(xì)介紹各種分頁方法前,讓我們先創(chuàng)建一個(gè)數(shù)據(jù)庫:用Office97中的access自創(chuàng)一個(gè)Employee.mdb,其中建一個(gè)表emp,只設(shè)三個(gè)字段:emp ID,last name和first name。為什么這么簡單,是因?yàn)槲覀冴P(guān)心的是怎樣處理recordset的結(jié)果。

第一種:參數(shù)直接代入法。

這種方法是用手工建立Recordset對(duì)象,利用其pagesize(每頁指定顯示記錄數(shù)),pagecount(總頁碼數(shù))和absolutepage(當(dāng)前頁碼數(shù))屬性來控制分頁的輸出。分頁采用<href>直接帶頁碼參數(shù)的方法來控制翻頁。網(wǎng)頁的名字為emp1.asp。源代碼如下:

<%//建立與employee.mdb數(shù)據(jù)庫的連接。

Set conn = Server.createObject("ADODB.Connection")

conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=employee.mdb"

//建立emp表的Recordset對(duì)象實(shí)例rs。

Set rs = Server.createObject("ADODB.Recordset")

rs.Open "emp", conn, 3

PageSize = 10 //pagesize屬性指定了每頁要顯示的記錄條數(shù)

Page = CLng(Request("Page")) string型轉(zhuǎn)化為long型

If Page < 1 Then Page = 1

If Page > rs.PageCount Then Page = rs.PageCount

If Page <> 1 Then

Response.Write "<A HREF=emp1.asp?Page=1>第一頁</A>"

Response.Write "<A HREF=emp1.asp?Page=" & (Page-1) & ">上一頁</A>"

End If

If Page <> rs.PageCount Then

Response.Write "<A HREF=emp1.asp?Page=" & (Page+1) & ">下一頁</A>"

Response.Write "<A HREF=emp1.asp?Page="&rs.PageCount & ">最后一頁</A>"

End If

Response.write"頁碼:" & Page & "/" & rs.PageCount & "</font>"

//每一頁的顯示

//顯示表頭

Response.Write "<CENTER><TABLE BORDER=1>"

Response.WRITE "<TR><TD>" & rs.Fields("emp ID").Name & "</TD>"

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:ASP中七種實(shí)現(xiàn)分頁顯示的方法
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)