首先,建立
數(shù)據(jù)庫(kù):
一、在我的文檔下面新建一個(gè)文件夾,起名為“研究所”。當(dāng)然你也可以在其他地方新建,起其他名字。
二、打開(kāi)acess,新建一
數(shù)據(jù)庫(kù)db1,建立兩張表 leibie 和 tushu ,表與表之間的聯(lián)系字段為“類(lèi)別名稱(chēng)”。
表leibie結(jié)構(gòu)為兩個(gè)字段:
?。?)類(lèi)別號(hào),文本類(lèi)型,字段長(zhǎng)度為6位,必填字段,不允許輸入空白字符串;
?。?)類(lèi)別名稱(chēng),文本類(lèi)型,字段長(zhǎng)度為20位,必填字段,不允許輸入空白字符串。
表tushu結(jié)構(gòu)為九個(gè)字段:
(1)編號(hào),文本類(lèi)型,字段長(zhǎng)度為6位;
?。?)書(shū)名,文本類(lèi)型,字段長(zhǎng)度為60位,必填字段,不允許輸入空白字符串。
?。?)作者,文本類(lèi)型,字段長(zhǎng)度為50位;
?。?)出版者,文本類(lèi)型,字段長(zhǎng)度為60位;
?。?)版次,文本類(lèi)型,字段長(zhǎng)度為15位;
?。?)單價(jià),貨幣類(lèi)型,允許小數(shù)位數(shù)2位,默認(rèn)值為0元;
?。?)類(lèi)別名稱(chēng),文本類(lèi)型,字段長(zhǎng)度為20位,必填字段,不允許輸入空白字符串。
?。?)是否借出,文本類(lèi)型,字段長(zhǎng)度為4位,必填字段,不允許輸入空白字符串,默認(rèn)值為 No 。
?。?)備注,備注類(lèi)型。
三、根據(jù)表結(jié)構(gòu)輸入各項(xiàng)數(shù)據(jù)。
其次,設(shè)置站點(diǎn)及連接
數(shù)據(jù)庫(kù):
?。?)設(shè)置站點(diǎn)。打開(kāi)dw ,選擇 site 菜單下的 new site ,彈出設(shè)置站點(diǎn)面板,站點(diǎn)名輸入研究所,目錄就是我們剛才建立的目錄,如圖1,Testing Server選項(xiàng)中的Server Model選擇Asp VBScript,Access選擇Local/Network。
圖1
?。?)新建一網(wǎng)頁(yè),因?yàn)椴樵?xún)是動(dòng)態(tài)頁(yè)面,因此在彈出的面板中選擇Dynamic page和Asp VBScript,如圖2。按create按鈕回到頁(yè)面。
圖2
?。?)連接數(shù)據(jù)庫(kù)。展開(kāi)右邊的Application 面板,選擇Databases標(biāo)簽,按"+"按鈕,選擇Data Source Name (DSN),如圖3。
圖3
(4)在彈出的Data Source Name (DSN)面板上(如圖4)選擇define...按鈕進(jìn)入ODBC數(shù)據(jù)源管理器,選擇系統(tǒng)DSN標(biāo)簽,點(diǎn)擊添加按鈕,選擇"Driver do Microsoft Access(*.mdb)"數(shù)據(jù)驅(qū)動(dòng)程序,點(diǎn)擊完成按鈕。
圖4
?。?)在隨后的面板上選擇數(shù)據(jù)庫(kù)路徑(就是我們剛才建立的目錄),選中db1,數(shù)據(jù)源名輸入db1,如圖5。
圖5
?。?)單擊確定按鈕,返回ODBC數(shù)據(jù)源管理器面板。再單擊確定按鈕,返回Data Source Name (DSN)面板。點(diǎn)擊test按鈕,如果彈出如圖6的成功面板,就表明一切ok,
數(shù)據(jù)庫(kù)已經(jīng)連接好了,右邊Application面板的Databases標(biāo)簽就會(huì)相應(yīng)的出現(xiàn)我們新建的數(shù)據(jù)源db1。
圖6
現(xiàn)在準(zhǔn)備工作一切就緒,可以建立動(dòng)態(tài)查詢(xún)網(wǎng)頁(yè)了。
一、建立主頁(yè)。主頁(yè)很簡(jiǎn)單,就是建立兩個(gè)查詢(xún)鏈接,“按圖書(shū)類(lèi)別查詢(xún)”鏈接到chaxun.asp,“按圖書(shū)名稱(chēng)查詢(xún)”鏈接到chaxun1.asp,這兩個(gè)網(wǎng)頁(yè)就是我們下面要建立的查詢(xún)網(wǎng)頁(yè)。主頁(yè)因不需要?jiǎng)討B(tài)編程,可存為htm格式,文件保存到研究所目錄下,取名為index,具體如圖7。
圖7
二、建立按圖書(shū)類(lèi)別查詢(xún)網(wǎng)頁(yè)。
1、新建一動(dòng)態(tài)網(wǎng)頁(yè),取名chaxun.asp。
2、建立記錄集。選擇右邊的Application面板中的Bindings標(biāo)簽,按加號(hào)按鈕,選擇Recordset(Query),如圖8,彈出Recordset對(duì)話框,里面的設(shè)置如圖9,Name就取默認(rèn)值 Recordset1,Connection選擇我們剛剛建立的連接db1,因?yàn)轱@示的是圖書(shū)類(lèi)別,因此Table選擇表leibie。
圖8
圖9
3、設(shè)置完畢后,點(diǎn)擊test按鈕,大家可以看到leibie表的內(nèi)容全顯示出來(lái)了。點(diǎn)擊OK回到頁(yè)面,這時(shí)我們可以看到Binding標(biāo)簽下方顯示出我們剛剛建立的名為Recordset1的查詢(xún)。
4、輸入網(wǎng)頁(yè)上靜態(tài)顯示的內(nèi)容,如圖10,其中“返回”鏈接到主頁(yè)index.htm 。
圖10
5、點(diǎn)擊Binding標(biāo)簽下方Recordset1旁邊的"+"號(hào),展開(kāi)字段,用鼠標(biāo)按住“類(lèi)別名稱(chēng)”字段不放,直接拖到頁(yè)面上的單元格中,松開(kāi)鼠標(biāo), 這樣單元格就包含了一個(gè)動(dòng)態(tài)文本,頁(yè)面效果如圖11。
圖11
只是現(xiàn)在這個(gè)單元格還只能顯示一行(大家可以先在
瀏覽器里看一看是不是這樣的顯示效果),那么如何才能將所有的字段內(nèi)容顯示出來(lái)呢?
6、選中表格,再選擇右邊的Application面板中的Server Behaviors標(biāo)簽,按加號(hào)按鈕,選擇Repeat Region(循環(huán)區(qū)域),這樣就可以控制一頁(yè)顯示多少記錄了。在這里,因?yàn)閳D書(shū)類(lèi)別不多,因此在對(duì)話框中選擇All Records(顯示所有記錄),不分頁(yè)顯示了,具體如圖12。
圖12
7、運(yùn)行pws,設(shè)置好路徑,用
瀏覽器打開(kāi)此網(wǎng)頁(yè),看看屏幕上是不是將
數(shù)據(jù)庫(kù)里的類(lèi)別名稱(chēng)都顯示出來(lái)了,只是現(xiàn)在還不能點(diǎn)擊進(jìn)去。好,下面我們就來(lái)做相應(yīng)的顯示圖書(shū)的頁(yè)面。
三、制作按類(lèi)別查詢(xún)顯示的頁(yè)面
1、新建一動(dòng)態(tài)網(wǎng)頁(yè),取名xianshi.asp。
2、建立記錄集。選擇Application面板中的Bindings標(biāo)簽,按加號(hào)按鈕,選擇Recordset(Query),彈出Recordset對(duì)話框,里面的設(shè)置如圖13,名字為Recordset2,
數(shù)據(jù)庫(kù)表選擇tushu,因?yàn)榫W(wǎng)頁(yè)顯示的圖書(shū)信息是根據(jù)前面查詢(xún)條件來(lái)顯示的,因此就需要設(shè)置一個(gè)限制條件來(lái)選擇符合條件的圖書(shū),那么這個(gè)條件是通過(guò)什么來(lái)實(shí)現(xiàn)傳遞和接受的呢?這就需要用到URL Parameter(URL參數(shù))了,利用這個(gè)參數(shù)可以從查詢(xún)網(wǎng)頁(yè)傳遞查詢(xún)條件,然后在顯示網(wǎng)頁(yè)中接受這個(gè)參數(shù)來(lái)顯示符合的記錄。具體使用方法如下:
圖13
?。?)先讓我們回到查詢(xún)頁(yè)chaxun.asp。用鼠標(biāo)選中表格中的字段,再選擇Application面板上Server Behaviors標(biāo)簽,按加號(hào)按鈕,選擇Go To Detail Page(到細(xì)節(jié)頁(yè)),彈出Go To Detail Page對(duì)話框,具體設(shè)置如圖14。Detail Page就是我們的顯示網(wǎng)頁(yè)xianshi.asp,Pass URL Parameter文本框里輸入的就是要通過(guò)URL傳遞到細(xì)節(jié)頁(yè)中的參數(shù)名,為便于理解,我們輸入“類(lèi)別名稱(chēng)”,這個(gè)名字可要和后面顯示網(wǎng)頁(yè)里設(shè)置的參數(shù)名一樣。Recordset意為從哪個(gè)記錄集里傳遞出去的,我們選擇Recorset1,Column意思為URL參數(shù)值的來(lái)源,要與查詢(xún)網(wǎng)頁(yè)上的查詢(xún)條件一致,因此選擇“類(lèi)別名稱(chēng)”,Pass Existing Parameters這兩個(gè)選項(xiàng)于表單有關(guān),而在這個(gè)查詢(xún)網(wǎng)頁(yè)上并沒(méi)有用到表單,因此可以不選。點(diǎn)擊ok按鈕,大家可以看到表格中的字段已變成一個(gè)包含動(dòng)態(tài)內(nèi)容的超文本連接了。
圖14
?。?)好,URL Parameter已設(shè)置,現(xiàn)在再回到顯示網(wǎng)頁(yè)xianshi.asp來(lái)接受這個(gè)參數(shù)。選擇Recordset(Query),彈出Recordset對(duì)話框,在Filter中設(shè)置如上圖13,意思是:查詢(xún)條件為表tushu中的字段“類(lèi)別名稱(chēng)”要等于傳遞過(guò)來(lái)的URL Parameter參數(shù)“類(lèi)別名稱(chēng)”,這樣查詢(xún)網(wǎng)頁(yè)和顯示網(wǎng)頁(yè)就聯(lián)系起來(lái)了。
?。?)點(diǎn)擊test按鈕來(lái)測(cè)試。大家可以輸入某一個(gè)類(lèi)別名稱(chēng),dw 就會(huì)顯示出相應(yīng)的圖書(shū)記錄。
?。?)點(diǎn)擊ok按鈕回到頁(yè)面,至此記錄集建立好了。
3、輸入網(wǎng)頁(yè)中的靜態(tài)內(nèi)容,如圖15,其中“返回”鏈接到查詢(xún)網(wǎng)頁(yè)chaxun.asp,因?yàn)橛械念?lèi)別圖書(shū)比較多,因此將顯示設(shè)為分頁(yè)顯示。
圖15
4、用上面介紹的方法,將記錄集的字段分別拖到頁(yè)面上相應(yīng)的位置中,如圖16。
圖16
5、選中表格中的第二行,點(diǎn)擊Application面板中的Server Behaviors標(biāo)簽,按加號(hào)按鈕,選擇Repeat Region,彈出Repeat Region對(duì)話框,因?yàn)橐猪?yè)顯示,所以選擇每次顯示幾條,在這里我輸入的是10,意思為每頁(yè)顯示10條記錄,大家可以根據(jù)情況自由輸入,如圖17。點(diǎn)擊ok鍵回到頁(yè)面。
圖17
6、因?yàn)槭欠猪?yè)顯示,需要翻頁(yè),那么在dw里如何實(shí)現(xiàn)呢?很簡(jiǎn)單,大家先選中“首頁(yè)”,然后點(diǎn)擊Application面板中的Server Behaviors標(biāo)簽,按加號(hào)按鈕,可以看到有一個(gè)Recordset Paging選項(xiàng),將鼠標(biāo)滑到這選項(xiàng),顯示出下拉菜單,這些菜單的含義我想大家應(yīng)該明白了吧,如圖18。選擇第一條“Move To First Record”,彈出對(duì)話框,如圖19,點(diǎn)擊ok按鈕回到頁(yè)面,這樣“首頁(yè)”的動(dòng)態(tài)鏈接就做好了,其他的“上一頁(yè)”、“下一頁(yè)”、“末頁(yè)”依次類(lèi)推,做好與其相對(duì)應(yīng)的動(dòng)態(tài)鏈接。
圖18
圖19
7、那么用戶(hù)如何知道記錄已經(jīng)到最后一條,而不應(yīng)再往下翻了呢?在這里,我是這樣解決的,如果記錄已到最后一條,則“下一頁(yè)”、“末頁(yè)”在頁(yè)面上自動(dòng)隱藏,同理,記錄已到第一條,則“首頁(yè)”、“上一頁(yè)”自動(dòng)隱藏。下面是具體實(shí)現(xiàn)方法:
?。?)大家先選中“首頁(yè)”,然后點(diǎn)擊Application面板中的Server Behaviors標(biāo)簽,按加號(hào)按鈕,將鼠標(biāo)滑到Show Region選項(xiàng),顯示出下拉菜單,如圖20。
圖20
?。?)選擇“Show Region If Not First Record”,意思為如果不是第一條記錄則顯示,反過(guò)來(lái)就是如果是第一條記錄則不顯示,隱藏起來(lái)。
(3)在彈出的對(duì)話框上直接點(diǎn)擊ok按鈕回到頁(yè)面,這樣“首頁(yè)”的自動(dòng)隱藏功能就做好了。
?。?)同理,做好其他幾個(gè)的自動(dòng)隱藏功能。“上一頁(yè)”與“首頁(yè)”一樣,選擇“Show Region If Not First Record”;“下一頁(yè)”與“末頁(yè)”一樣,選擇“Show Region If Not Last Record”。
至此,按類(lèi)別查詢(xún)顯示的頁(yè)面終于制作完成了,我們來(lái)看看具體效果。運(yùn)行pws,用IE打開(kāi)chaxun.asp,點(diǎn)擊某一個(gè)類(lèi)別名稱(chēng),如“新藥 藥品”,IE就會(huì)自動(dòng)顯示出該類(lèi)別的圖書(shū),點(diǎn)擊“下一頁(yè)”,“上一頁(yè)”等等鏈接,看看IE會(huì)不會(huì)自動(dòng)翻頁(yè),具體效果如圖21、22。
圖21
圖22
四、制作根據(jù)圖書(shū)名稱(chēng)來(lái)查詢(xún)的網(wǎng)頁(yè)
1、新建一動(dòng)態(tài)網(wǎng)頁(yè),取名chaxun1.asp。
2、輸入網(wǎng)頁(yè)上靜態(tài)顯示的內(nèi)容,如圖23,其中“返回”鏈接到主頁(yè)index.htm ,紅色虛線表明這是個(gè)表單,表單的屬性設(shè)置如圖24,意思為post(傳遞)一個(gè)表單變量名到xianshi1.asp網(wǎng)頁(yè),并執(zhí)行這個(gè)網(wǎng)頁(yè),這樣查詢(xún)網(wǎng)頁(yè)和顯示網(wǎng)頁(yè)就通過(guò)變量名聯(lián)系起來(lái)了;文本框取名ts,這個(gè)名字請(qǐng)記住,因?yàn)檫@就是要通過(guò)表單傳遞的變量名,后面的顯示網(wǎng)頁(yè)還要用到。
圖23
圖24
五、制作按圖書(shū)名稱(chēng)顯示的網(wǎng)頁(yè)
1、新建一動(dòng)態(tài)網(wǎng)頁(yè),取名xianshi1.asp。
2、輸入網(wǎng)頁(yè)上靜態(tài)顯示的內(nèi)容,如圖25,其中“返回”鏈接到查詢(xún)頁(yè)chaxun1.htm ,紅色虛線同樣表明這是個(gè)表單。
圖25
3、建立記錄集。選擇Application面板中的Bindings標(biāo)簽,按加號(hào)按鈕,選擇Recordset(Query),彈出Recordset對(duì)話框,里面的設(shè)置如圖26,名字為Recordset1,
數(shù)據(jù)庫(kù)表選擇tushu,F(xiàn)ilter過(guò)濾條件設(shè)置為表tushu中的字段“書(shū)名”要contains(包含)傳遞過(guò)來(lái)的Form Variable(表單變量)ts,這個(gè)ts變量就是查詢(xún)網(wǎng)頁(yè)chaxun1.asp里文本框的名字。點(diǎn)擊ok按鈕回到頁(yè)面。
圖26
4、將記錄集的字段分別拖到頁(yè)面上相應(yīng)的位置中。
5、選中表格的第二行,點(diǎn)擊Application面板中的Server Behaviors標(biāo)簽,按加號(hào)按鈕,選擇Repeat Region,彈出Repeat Region對(duì)話框,設(shè)置為全部顯示。
最終頁(yè)面效果如圖27。
圖27
至此,按圖書(shū)名稱(chēng)查詢(xún)顯示的頁(yè)面終于制作完成了,我們來(lái)看看具體效果。運(yùn)行pws,用IE打開(kāi)chaxun1.asp,輸入某個(gè)名稱(chēng),如“質(zhì)量管理”,IE就會(huì)自動(dòng)顯示出所有書(shū)名含有“質(zhì)量管理”的圖書(shū),具體效果如圖28、29。
圖28