日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Dreamweaver构建Blog全程实录

發(fā)布時(shí)間:2023/12/18 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Dreamweaver构建Blog全程实录 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

BLOG,就是“網(wǎng)絡(luò)日志(Web Log)”。Blog通常是由簡(jiǎn)短且經(jīng)常更新的Post所構(gòu)成;這些張貼的文章都按照年份和日期排列。Blog的內(nèi)容和目的有很大的不同,從對(duì)其他網(wǎng)站的超級(jí)鏈接和評(píng)論,有關(guān)公司、個(gè)人、構(gòu)想的新聞到日記、照片、詩歌、散文,甚至科幻小說的發(fā)表或張貼都有。許多Blog是個(gè)人心中所想之事情的發(fā)表,其它Blog則是一群人基于某個(gè)特定主題或共同利益領(lǐng)域的集體創(chuàng)作。

本文將使用Dreamweaver MX 2004 + Asp.net + Access組合,通過一個(gè)完整實(shí)用的例子,向讀者介紹如何無需編寫代碼,制作“五臟俱全”的Blog。

?

Blog實(shí)例效果圖

了解Doking’s BLOG功能和開發(fā)目的之后,接下來就是構(gòu)建好開發(fā)環(huán)境。

2.1? ASP.NET運(yùn)行環(huán)境的構(gòu)建

  在開始開發(fā)Doking’s BLOG前,應(yīng)該先構(gòu)造好開發(fā)環(huán)境。下面介紹的是在Windows 2000/XP操作系統(tǒng)中的構(gòu)建方法。

  2.1.1 安裝IIS服務(wù)器

  按【開始】→【控制面板】→【安裝/刪除Windows組件】,勾選“安裝Internet信息服務(wù)組件”,如圖2-1所示。

圖2-1? windows組件向?qū)?duì)話框

  2.1.2 在IIS服務(wù)器上,給Doking’s BLOG安上新家

  (1)首先在D:/下新建目錄“dkblog”,打開【控制面板】→【管理工具】→【Internet 服務(wù)管理器】,打開【Internet信息服務(wù)】對(duì)話框,如圖2-2所示。

圖2-2? Internet信息服務(wù)對(duì)話框

  (2)右鍵單擊“默認(rèn)Web站點(diǎn)”,選擇屬性,打開【默認(rèn)Web站點(diǎn)屬性】對(duì)話框,在對(duì)話框中,單擊【主目錄】選項(xiàng)卡,把本地路徑指向“D:/dkblog”,在“執(zhí)行許可(P):”下拉菜單中選擇“腳本和可執(zhí)行程序”,結(jié)果如圖2-3所示。

圖2-3? 站點(diǎn)屬性對(duì)話框

  (3)現(xiàn)在,電腦終于可以在像網(wǎng)絡(luò)服務(wù)一樣提供WWW服務(wù)了,默認(rèn)網(wǎng)址:localhost或電腦的IP地址(如:127.0.0.1)。

  提醒:大家可不要小看Internet服務(wù)器的管理,如果能合理分配好IP地址和站點(diǎn)虛擬目錄,也能讓電腦真正成為網(wǎng)絡(luò)服務(wù)器,也能讓網(wǎng)絡(luò)上的用戶瀏覽電腦上的網(wǎng)站和數(shù)據(jù)庫。

  2.1.3 安裝.NET框架

  大家可以在微軟的網(wǎng)上下載.NET Framework 2.0和相應(yīng)版本的SDK工具包,也可以從下面網(wǎng)址下載安裝:

  .NET Framework Version 2.0 Redistributable Package Beta 1 (x86) – 24M
http://go.microsoft.com/fwlink/?linkid=30093&clcid=0x409

  .NET Framework 2.0 SDK Beta 1 x86 – 229M
http://www.microsoft.com/downloads/details.aspx?familyid=916EC067-8BDC-4737-9430-6CEC9667655C&displaylang=en

  打開IE瀏覽器,在地址欄上打上“l(fā)ocalhost/text.aspx”,假定text.aspx這個(gè)文檔現(xiàn)在不存在,那么IE瀏覽器上一定會(huì)返回錯(cuò)誤信息,如果出現(xiàn)如圖2-4所示的錯(cuò)誤信息,說明我ASP.NET的運(yùn)行環(huán)境基本構(gòu)建完畢。

圖2-4? 找不著文件錯(cuò)誤信息

  2.1.4 在Windows 2003操作系統(tǒng)中構(gòu)建ASP.NET運(yùn)行環(huán)境

  上面介紹的是在Windows 2000/XP操作系統(tǒng)中構(gòu)建ASP.NET運(yùn)行環(huán)境的步驟和方法。在Windows 2003操作系統(tǒng)中構(gòu)建ASP.NET運(yùn)行環(huán)境主要有以下兩種方法:

  1.使用【配置您的服務(wù)器向?qū)А堪惭bIIS 6.0和ASP.NET

  (1)從【開始】菜單,單擊“管理您的服務(wù)器”。
  (2)在“管理您的服務(wù)器角色”下,單擊【添加或刪除角色】。
  (3)閱讀“配置您的服務(wù)器向?qū)А敝械念A(yù)備步驟,然后單擊“下一步”。
  (4)在“服務(wù)器角色”下,單擊“應(yīng)用程序服務(wù)器(IIS,ASP.NET)”,然后單擊“下一步”。
  (5)在【應(yīng)用程序服務(wù)器選項(xiàng)】對(duì)話框中,選中“啟用ASP.NET”復(fù)選框,單擊“下一步”,然后再單擊“下一步”。
  (6)閱讀概要信息,然后單擊“下一步”。
  (7)單擊“完成”。

  2.使用【控制面板】安裝IIS 6.0和ASP.NET

  (1)從【開始】菜單,單擊【控制面板】。
  (2)雙擊【添加或刪除程序】。
  (3)單擊【添加/刪除Windows組件】。
  (4)在“組件”列表框中,單擊“應(yīng)用程序服務(wù)器”。
  (5)單擊“詳細(xì)信息”。
  (6)單擊“Internet信息服務(wù)管理器”。
  (7)單擊“詳細(xì)信息”以查看IIS可選組件的列表。
  (8)選擇要安裝的所有可選組件。
  (9)單擊“確定”,直到返回到【W(wǎng)indows 組件向?qū)А俊?br />  (10)單擊“下一步”,然后完成【W(wǎng)indows 組件向?qū)А俊?/p>

  另外,可以在運(yùn)行Windows 2003的服務(wù)器中的 IIS 管理器中直接啟用ASP.NET,具體步驟如下:

  (1)從【開始】菜單中,單擊“運(yùn)行”。
  (2)在【運(yùn)行】對(duì)話框中的【打開】框中,鍵入inetmgr,然后單擊“確定”。
  (3)在IIS管理器中,展開本地計(jì)算機(jī),然后單擊“Web服務(wù)擴(kuò)展”。
  (4)在右側(cè)窗口中,右鍵單擊“ASP.NET”然后單擊“允許”。ASP.NET的狀態(tài)變?yōu)椤霸试S”。

2.2? 建立Doking’s BLOG 站點(diǎn)

  在構(gòu)建好ASP.NET運(yùn)行環(huán)境之后,可以開始著手開發(fā)Doking’s BLOG網(wǎng)站了。首先,必須在Dreamweaver MX中建立Doking’s BLOG站點(diǎn)。

  2.2.1 建立Doking’s BLOG站點(diǎn)

  (1)啟動(dòng)Dreamweaver MX 2004,切換到【文件】面板,單擊“管理站點(diǎn)”,單擊按鈕“新建”,如圖2-5所示。

圖2-5? 管理站點(diǎn)對(duì)話框

  (2)在其下接菜單中,選擇“站點(diǎn)(S)”,在彈出對(duì)話框中,輸入站點(diǎn)名字“dkblog”,結(jié)果如圖2-6所示。

圖2-6? 定義站名字

  (3)單擊“下一步”,選擇“是,我想使用服務(wù)器技術(shù)。(Y)”,在“哪種服務(wù)器技術(shù)?(W)”下拉菜單中,選擇“ASP.NET VB”,結(jié)果如圖2-7所示。

圖2-7? 確定服務(wù)器技術(shù)

  (4)單擊“下一步”,選擇“在本地進(jìn)行編輯和測(cè)試(我的測(cè)試服務(wù)器是這臺(tái)計(jì)算機(jī))(E)”,把文件存儲(chǔ)指向“D:/dkblog”,如圖2-8所示。

  (5)單擊“下一步”,輸入U(xiǎn)RL地址“http://localhost/”,單擊按鈕“測(cè)試URL(I)”,如果測(cè)試成功,會(huì)顯示如圖2-9一樣的對(duì)話框。

圖2-8? 指定網(wǎng)站的目錄位置

圖2-9? 測(cè)試對(duì)話框

  (6)單擊“下一步”,再單擊“下一步”,單擊按鈕“完成”,完成站點(diǎn)的建立。

  2.2.2 部署Doking’s BLOG站點(diǎn)

  (1)先來看Doking’s BLOG網(wǎng)站的布局,根目錄存放.aspx、.htm文件;bin目錄是用于部署DreamweaverCtrls.dll控件;dat目錄用于存放數(shù)據(jù)庫;images目錄存放有關(guān)圖片文件。在打開文件面板,在“站點(diǎn)—dkblog”下分別新建目錄bin、目錄dat、目錄images,結(jié)果如圖2-10所示。

  (2)在【文件】菜單中,選擇【新建】,在【新建對(duì)話框】中,選擇類別為“動(dòng)態(tài)頁”,選擇動(dòng)態(tài)頁為“ASP.NET VB”,按“創(chuàng)建”按鈕創(chuàng)建第一個(gè)動(dòng)態(tài)網(wǎng)頁。切換到【應(yīng)用程序】面板,選擇【綁定】選項(xiàng)卡,如圖2-11所示。

  

圖2-10? 站點(diǎn)的布局???????????????? 圖2-11? 綁定對(duì)話框

  (3)點(diǎn)擊“部署”二字,在彈出對(duì)話框中把部署目錄指向“D:/dkblog/bin/”,如圖2-12所示。

  (4)點(diǎn)擊“部署”按扭,彈出如圖2-13的對(duì)話框,按“確定”按鈕將它關(guān)閉。

圖2-12? 部署設(shè)置對(duì)話框

?

圖2-13? 部署文件對(duì)話框

  提醒:切記DreamweaverCtrls.dll文件名稱及其所在目錄bin名稱不能更改,并且bin文件夾必須保存在站點(diǎn)的根目錄下。

?

3.1 數(shù)據(jù)庫的規(guī)范化

  數(shù)據(jù)庫的規(guī)范化主要體現(xiàn)在表與表之間的關(guān)系、數(shù)據(jù)結(jié)構(gòu)及存儲(chǔ)兩大方面。

  3.1.1 數(shù)據(jù)表之間的關(guān)系

  許多初學(xué)者常常認(rèn)為,建立一個(gè)表儲(chǔ)存所有數(shù)據(jù)就可以了。如果這么認(rèn)為,那經(jīng)常會(huì)造成數(shù)據(jù)冗余的。圖3-1-1是一個(gè)數(shù)據(jù)表,可以看到畫在紅色圈中的數(shù)據(jù)是冗余的。

圖3-1-1? 一個(gè)數(shù)據(jù)表

  冗余數(shù)據(jù)會(huì)影響數(shù)據(jù)庫的有效運(yùn)行,甚至可以把數(shù)據(jù)庫推毀。為減少冗余數(shù)據(jù),得把數(shù)據(jù)分開儲(chǔ)存成幾個(gè)表,并建立表與表之間的連接關(guān)系。表與表之間的連接關(guān)系,主要有一對(duì)多、多對(duì)多、一對(duì)一三種方式。

  一對(duì)多關(guān)系,它是數(shù)據(jù)庫中最普通的關(guān)系類型。這種關(guān)系雙被稱為是父表與子表關(guān)系或主表與分表關(guān)系。圖3-1-2就體現(xiàn)了一種父表與子表關(guān)系。在這里,專題表與回復(fù)表就是一對(duì)多的關(guān)系。專題表是父表,回復(fù)表是子表,專題表中的一行在回復(fù)表可有零行、一行或許多與之對(duì)應(yīng),而回復(fù)表中的每一行都與專題表中的相應(yīng)的專題對(duì)應(yīng)。

圖3-1-2?? 一對(duì)多關(guān)系

  多對(duì)多關(guān)系,就是第一張表的每一行可對(duì)應(yīng)第二張表的許多行,同樣地,第二張表中的每行也可與第一第表中的許多行相對(duì)應(yīng)。例如,一個(gè)專題可以有許多用戶回復(fù),一個(gè)用戶也可以作多次專題回復(fù)。這就需要建立第三張表,將專題代碼與用戶代碼連接,這個(gè)表就是前兩個(gè)表的父表。在圖3-1-3中,“回復(fù)表”就是“專題表”與“用戶表”的父表。

圖3-1-3? 多對(duì)多關(guān)系

  一對(duì)一的關(guān)系,就是將一個(gè)表中的行與另一表中的行連接來。這種關(guān)系非常少見,因?yàn)槿缡怯械脑?#xff0c;還不如把這兩個(gè)表合為一張表更為合理。

  3.1.2 數(shù)據(jù)結(jié)構(gòu)與儲(chǔ)存

  數(shù)據(jù)庫的物理結(jié)構(gòu)必須基于邏輯結(jié)構(gòu)建立的,在設(shè)計(jì)表格、字段和關(guān)系時(shí)就需記住一些規(guī)則。行與列的順序并不起什么作用,雖然在數(shù)據(jù)表中,列會(huì)有一定的順序位置,但它們并不以此來代表引用順序。記錄的順序只有在它們從數(shù)據(jù)表中取出并送給用時(shí)才起作用。SQL會(huì)通過參數(shù)數(shù)據(jù)庫索引來處理記錄的提取順序。例如,在數(shù)據(jù)表中,把性別字段放在姓名字段之前,這個(gè)錯(cuò)誤沒什么,只要在采用SQL語句調(diào)用這個(gè)數(shù)據(jù)表時(shí),記得把姓名字段調(diào)到性別字段之前就可以了。

  設(shè)計(jì)數(shù)據(jù)表時(shí),分配字段大小要慎重,在夠用的情況下,能省就省。如果字段用于儲(chǔ)存整數(shù),請(qǐng)用整數(shù)或長(zhǎng)整數(shù),不用單精度或雙精度,如果夠用的話,最好建立100字符的文本類型字段,而不要采用備注字段。為什么?如果你不怕高昂的服務(wù)器費(fèi)用、不怕網(wǎng)絡(luò)數(shù)據(jù)庫運(yùn)行緩慢,你大可不必理會(huì)這些,但它最嚴(yán)重會(huì)導(dǎo)致數(shù)據(jù)庫崩潰。

3.2? Doking’s BLOG數(shù)據(jù)庫的設(shè)計(jì)

  基于上述數(shù)據(jù)庫規(guī)范化的知識(shí),這節(jié)開始規(guī)劃設(shè)計(jì)Doking’s BLOG數(shù)據(jù)庫。Doking’s BLOG數(shù)據(jù)庫中設(shè)計(jì)了五個(gè)數(shù)據(jù)表,分別是LM表(欄目表)、ZT表(學(xué)習(xí)筆記表)、HF表(回復(fù)表)、YH表(用戶表)、GLY表(管理員表),并把數(shù)據(jù)庫命名為“dkblog.mdb”,保存在“D:/dat/”目錄下。

  LM表即欄目表,用于網(wǎng)站導(dǎo)航條建立和學(xué)習(xí)筆記的歸類,欄目?jī)?nèi)容是由網(wǎng)站的管理員設(shè)計(jì)的,其字段設(shè)計(jì)如圖3-2-1所示

圖3-2-1? LM表的字段設(shè)計(jì)圖

  ZT表即學(xué)習(xí)筆記表,是用于儲(chǔ)存用戶發(fā)表學(xué)習(xí)心得,其實(shí)字段設(shè)計(jì)如圖3-2-2所示:

圖3-2-2? ZT表的字段設(shè)計(jì)圖

  HH表即回復(fù)表,儲(chǔ)存著用戶對(duì)已發(fā)表的學(xué)習(xí)筆記的回復(fù),其字段如圖3-2-3所示:

圖3-2-3? HF表的字段設(shè)計(jì)圖

  YH表即用戶表,儲(chǔ)存著用戶的注冊(cè)信息,方便用戶登錄發(fā)表學(xué)習(xí)筆記和學(xué)習(xí)筆記的回復(fù)。其字段設(shè)計(jì)如圖3-2-4所示:

圖3-2-4? YH表的字段設(shè)計(jì)圖

  GLY表即管理員表,用于管理員登錄,管理網(wǎng)站,其字段設(shè)計(jì)如圖圖3-2-5

圖3-2-5? GLY表的字段設(shè)計(jì)圖

?3.3 創(chuàng)建Doking’s BLOG數(shù)據(jù)庫連接源
?

  (1)啟動(dòng)Dreamweaver MX 2004,在【文件】菜單中,選擇【新建】,在【新建對(duì)話框】中,選擇類別為“動(dòng)態(tài)頁”,選擇動(dòng)態(tài)頁為“ASP.NET VB”,按“創(chuàng)建”按鈕,創(chuàng)建一個(gè)動(dòng)態(tài)網(wǎng)頁。

  (2)切換到【應(yīng)用程序】面板,選擇【數(shù)據(jù)庫】選項(xiàng)卡,單擊“+”號(hào),選擇“OLE DB連接”,如圖3-3-1所示:

圖3-3-1 選擇OLE DB連接

  (3)在彈出【OLE DB連接】對(duì)話框中,輸入連接名稱“dkconn”,單擊“建立”按鈕,如圖3-3-2所示:

圖3-3-2? 設(shè)置連接名稱

  (4)進(jìn)入【數(shù)據(jù)連接屬性】頁面,選擇【選擇程序】選項(xiàng)卡,由于要連接的數(shù)據(jù)庫是Access2003的數(shù)據(jù)庫,所以在數(shù)據(jù)庫引擎中選擇“Microsoft Jet 4.0 OLE DB Provider”作為驅(qū)動(dòng)程序,如圖3-3-3所示:

圖3-3-3 選擇數(shù)據(jù)庫引擎

  (5)選擇【連接】選項(xiàng)卡,選擇要連接數(shù)據(jù)庫為“D:/dkblog/dat/dkblog.mdb”,把“用戶名”和“密碼”的文本框清空,如圖3-3-4

圖3-3-4 選擇連接數(shù)據(jù)庫

  (6)選擇【高級(jí)】選項(xiàng)卡,在設(shè)置訪問權(quán)限中,選擇“ReadWrite”,如圖3-3-5所示

圖3-3-5? 設(shè)置訪問權(quán)限

  (7)返回【連接】選項(xiàng)卡,單擊“測(cè)試”按鈕,出現(xiàn)如圖3-3-6對(duì)話框,那說明已經(jīng)把數(shù)據(jù)庫dkblog.mdb連接到站點(diǎn)上了。單擊“確定”按鈕完成數(shù)據(jù)庫的連接工作。在站點(diǎn)的根目錄下面,可以看到增添了一個(gè)新文件“web.config”,以后可以在這個(gè)文件直接對(duì)數(shù)據(jù)庫的連接進(jìn)行修改。

圖3-3-6? 數(shù)據(jù)庫測(cè)試對(duì)話框

3.4? 連接對(duì)話框中的“建立”按鈕無效的解決

  如果您在3.3節(jié)中的第(3)步驟中單擊【建立】按鈕,【數(shù)據(jù)鏈接屬性】對(duì)話框不打開。單擊【建立】按鈕時(shí)沒有任何反應(yīng)。導(dǎo)致此問題的一個(gè)原因可能是 MDAC 2.8;XP SP2 中默認(rèn)包含著 MDAC 2.8。XP SP1 用戶如果安裝了 MDAC 2.8,則也會(huì)受到此問題的影響。此問題只影響 Dreamweaver MX 2004,而對(duì) Dreamweaver MX 沒有影響。有兩種解決方法:

  第一種方法:接3.3節(jié)中的步驟中第(3)步驟,在【OLE DB 連接】對(duì)話框中的【連接字符串】文本區(qū)域中輸入:

Provider=Microsoft.Jet.OLEDB.4.0;DataSource=D:/dkblog/dat/dkblog.mdb;Persist Security Info=False

  第二種方法:在硬盤上創(chuàng)建一個(gè)新的文本文件,將文件的擴(kuò)展名由 .txt 更改 .udl,然后打開 .udl 文件。該文件可以打開【數(shù)據(jù)鏈接屬性】對(duì)話框。其具體操作如下:

  ①接3.3節(jié)中的步驟中第(3)步驟。執(zhí)行【開始】|【所有程序】|【附件】|【記事本】系統(tǒng)菜單命令。

 ?、谠谟浭卤境绦蛑鞔翱谥?#xff0c;直接執(zhí)行執(zhí)行【文件】|【保存】菜單命令,在彈出【另存】對(duì)話框中的輸入文件名為數(shù)據(jù)庫連接.udl,如圖3-4-1所示。

圖3-4-1? 保存“數(shù)據(jù)庫連接.udl”

 ?、埸c(diǎn)擊【保存】按鈕,關(guān)閉記事本程序,切換到【桌面】中,雙擊“數(shù)據(jù)庫連接”這個(gè)文件,按照教程中第(4)—(7)進(jìn)行操作。單擊【確定】按鈕,關(guān)閉【數(shù)據(jù)庫鏈接】對(duì)話框。

 ?、軋?zhí)行【開始】|【所有程序】|【附件】|【記事本】系統(tǒng)菜單命令。在記事本程序主窗口中,直接執(zhí)行執(zhí)行【文件】|【打開】菜單命令,選擇“數(shù)據(jù)庫連接”為打開文件。

 ?、菰谟浭卤境绦蛑鞔翱谥?#xff0c;選擇第三行所有字符進(jìn)行復(fù)制,如圖3-4-2所示。切換到Dremweaver程序中,將其粘貼到第(3)步驟的在彈出【OLE DB連接】對(duì)話框中的【連接字符串】文本區(qū)域中,這樣就完成在Dreamweaver中的數(shù)據(jù)庫鏈接。

圖3-4-2? 復(fù)制“數(shù)據(jù)庫連接”文件中的第三行所有字符

?

4.1? 基本頁面設(shè)計(jì)

  這里,不是要談網(wǎng)頁藝術(shù)創(chuàng)造的知識(shí),而是講解在Dreamweaver MX2004中構(gòu)建網(wǎng)站內(nèi)頁的思路和方法。

  4.1.1 網(wǎng)站設(shè)計(jì)思路

  每個(gè)網(wǎng)頁開始前,一般要在Firworks或在Photoshop等圖像設(shè)計(jì)軟件中設(shè)計(jì)好基本頁面設(shè)計(jì),圖4-1-1就是Photoshop中設(shè)計(jì)好的基本頁面設(shè)計(jì)圖。

圖4-1-1? Doking’s BLOG基本頁面設(shè)計(jì)圖

  在圖4-1-1中序號(hào)①畫上紅色方圈部分的是網(wǎng)頁的左邊欄目,目前是空白的,它的欄目在以后章節(jié)中會(huì)一一添加上去的,序號(hào)②畫上紅色方圈部分的是網(wǎng)站的導(dǎo)航條,它是由第三章建立的dkblog.mdb數(shù)據(jù)庫中的LM表動(dòng)態(tài)生成的?;舅悸芬亚宄?#xff0c;開始構(gòu)建立網(wǎng)站的模板。

  4.1.2 構(gòu)建網(wǎng)站模板

  設(shè)計(jì)思路:構(gòu)建網(wǎng)站模板,統(tǒng)一網(wǎng)站網(wǎng)頁設(shè)計(jì)。網(wǎng)站的欄目菜單內(nèi)容由于數(shù)據(jù)表動(dòng)態(tài)LM生成,也方便網(wǎng)站欄目菜單內(nèi)容的修改。

  (1)打開【文件】→【新建】,打開【新文檔】的對(duì)話框,選擇“類別:”為“模板頁”,選擇“模板頁:”為“ASP.NET VB 模板”,結(jié)果如圖4-1-2所示。

圖4-1-2? 新建模板對(duì)話框

  (2)單擊“創(chuàng)建”按鈕,插入圖層,在其屬性窗口中,把ID設(shè)為“main”,把“左(L)”和“上(T)”設(shè)為0px,把“寬(W)”設(shè)為100%,把對(duì)齊方式設(shè)為居中。這樣是為了把網(wǎng)頁居中。

  (3)插入一個(gè)表格,把ID設(shè)為“bodyT”,設(shè)寬為780像素(這個(gè)是根據(jù)你的基本頁面設(shè)計(jì)圖的寬度而設(shè)計(jì)的),單位格的邊距和間距設(shè)置為0,邊框粗細(xì)設(shè)為0。

  (4)把“bodyT”表格第二行的垂直對(duì)齊方式設(shè)為頂端,再拆分為2列,第1列的寬度設(shè)為220px,第1列的寬度設(shè)為560px(分配列的寬度也是根據(jù)你的基本頁面設(shè)計(jì)圖而分配的),把第1列的背景顏色設(shè)為RGB(236,236,236)。

  (5)給“bodyT”表格的第一、三行分別插入相應(yīng)的背景圖,把第一行的的垂直對(duì)齊方式設(shè)為底部,水平對(duì)齊方式設(shè)為右邊。

  (6)還可以根據(jù)需要設(shè)計(jì)好標(biāo)題、字體大小,連接字體的顏色或或配色方案等。

  (7)建立網(wǎng)站的導(dǎo)航條。

  ?①啟動(dòng)Access2003,打開dkblog.mdb數(shù)據(jù)庫,在LM表的LM字段中按順序輸入平面設(shè)計(jì)、3D設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、網(wǎng)絡(luò)編程等4個(gè)記錄,如圖4-1-3 所示。

圖4-1-3? LM表數(shù)據(jù)錄入

  ②返回Dreamweaver,切換到【服務(wù)器行為】面板,單擊“+”按鈕,在下拉菜單中選擇“數(shù)據(jù)集”,如圖4-1-4所示。

圖4-1-4? 添加數(shù)據(jù)集

 ?、墼趶棾觥緮?shù)據(jù)集】對(duì)話框中,輸入數(shù)據(jù)集名稱為“menuda”,在連接下拉菜單中選擇“dkconn”,在表格的下拉菜單中選擇LM表,選擇列為“全部”選項(xiàng),在排序下拉菜單中選擇字段“LMID”,設(shè)排序?yàn)樯?#xff0c;結(jié)果如圖4-1-5所示:

圖4-1-5 數(shù)據(jù)集對(duì)話框

  ④單擊“測(cè)試”按鈕,出現(xiàn)如圖4-1-6所示的對(duì)話框,說明數(shù)據(jù)集創(chuàng)建成功,單擊“確定”按鈕完成。

圖4-1-6 數(shù)據(jù)集測(cè)試對(duì)話框

  ⑤切換到【綁定】選項(xiàng)卡,展開數(shù)據(jù)集(menuda)的字段,如圖4-1-7所示:

圖4-1-7? 綁定選項(xiàng)卡

  ⑥拖拉LM字段至表格bodyT的第一行,如圖4-1-8所示:

圖4-1-8拖拉LM字段

 ?、叻砰_鼠標(biāo),這時(shí)第一行會(huì)增加一段帶陰影的字符:{menuda.LM},在其前輸入“主頁 | ”,其后輸入符號(hào)“ | 聯(lián)系我們”,結(jié)果如圖4-1-9所示:

圖4-1-9? 綁定數(shù)據(jù)到bodyT表中

 ?、噙x擇帶陰影字符{menuda.LM}和后面的字符“ | ”,選擇【插入】菜單→【應(yīng)用程序?qū)ο蟆俊局貜?fù)區(qū)域】,在彈出【重復(fù)區(qū)域】的對(duì)話框中選擇數(shù)據(jù)集為“menuda”,把顯示記錄選為“所有記錄”,如圖4-1-10所示,單擊“確定”按鈕完成網(wǎng)站導(dǎo)航菜單。

圖4-1-10 重復(fù)區(qū)域?qū)υ捒?/p>

  (7)把鼠標(biāo)移到表格bodyT第二行第二列,選擇【插入】菜單→【模板對(duì)象】→【可編輯區(qū)域】,在【新建可編輯區(qū)域】對(duì)話框中,輸入名稱為“mainbody”,按下“確定”鍵,如圖4-1-11所示:

圖4-1-11? 新建可編輯區(qū)域

  這樣就完成網(wǎng)站模板的初期工作,保存模板為bkblog.dwt.aspx。

  4.1.3 首頁的頁面設(shè)計(jì)

  設(shè)計(jì)思路:完成網(wǎng)站的模板建設(shè)工作后,得以它來構(gòu)建網(wǎng)站和更新網(wǎng)站。

  (1)新建“ASP.NET VB” 動(dòng)態(tài)頁,打開【修改】菜單→【模板】→【應(yīng)用模板到頁】,在彈出的【選擇模板】對(duì)話框中,選擇模板“dkblog”,單擊“選擇”按鈕,如圖4-1-12所示:

圖4-1-12? 選擇模板

  (2)把鼠標(biāo)移到“mainbody”可編輯區(qū)域中,插入表格,設(shè)其ID為“ztre”,其實(shí)它設(shè)計(jì)成如圖4-1-13所示,這是每一個(gè)學(xué)習(xí)筆記將要顯示的內(nèi)容。

圖4-1-13? 每一個(gè)學(xué)習(xí)筆記將要顯示的內(nèi)容

4.2 插入數(shù)據(jù)集

  這一節(jié)講解的插入數(shù)據(jù)集可沒有上一節(jié)講解的那么簡(jiǎn)單。首先看看圖4-1-13,每個(gè)學(xué)習(xí)筆記將要顯示主題、發(fā)表時(shí)間、筆記分類(即所屬分欄目)、作者(姓名)、回復(fù)(個(gè)數(shù)),再來看看ZT表其設(shè)計(jì)圖(3.2節(jié)中的圖3-2-2),只有LMID(分類欄目的ID),沒有欄目名,這個(gè)要連接LM表才能取得;只有YHID(發(fā)表者的ID),沒有作者的姓名,這個(gè)要連接YH表才能取得;其它都可以從ZT表中獲得數(shù)據(jù)?!昂脧?fù)雜啊!”其實(shí)不用擔(dān)心,在Access中就可以解決一切困難。

  4.2.1 建立數(shù)據(jù)表連接查詢

  (1)啟動(dòng)Access2003,選擇【查詢】→雙擊【在設(shè)計(jì)視圖中創(chuàng)建查詢】,在彈出的【顯示表】窗口,如圖4-2-1所示:

圖4-2-1? 添加查詢連接表

  (2)按次序分別添加LM表、ZT表、YH表, 結(jié)果如圖4-2-2所示:

圖4-2-2? 數(shù)據(jù)表連接視圖

  (3)把查詢字段設(shè)計(jì)為,如圖4-2-3所示:

圖4-2-3? 查詢字段設(shè)計(jì)圖

  (4)保存這個(gè)查詢?yōu)閆TRE,完成在Access中數(shù)據(jù)表連接查詢。

  4.2.2 插入數(shù)據(jù)集

  (1)返回到Dreamweaver,切換到【服務(wù)器行為】面板,單擊“+”按鈕,添加數(shù)據(jù)集Ztre,選擇表格為剛才在Access中新建的查詢ZTRE,其它的有關(guān)設(shè)置,如圖4-2-4所示:

圖4-2-4? Ztre數(shù)據(jù)集的設(shè)置

  (2)切換到【綁定】選項(xiàng)卡,展開數(shù)據(jù)集(Ztre),拖拉字段ZTNAME替換表格ztre中的“學(xué)習(xí)筆記主題”,拖拉字段ZTTIME替換“發(fā)表時(shí)間”,拖拉字段LM替換“分類”,拖拉字段ZYTEXT到表格ztre的第二行空白處,其他設(shè)計(jì)如圖4-2-5所示:

圖4-2-5? 綁定數(shù)據(jù)到ztre表中

  (3)切換到【服務(wù)器行為】面板,可以看已增添了許多動(dòng)態(tài)文本,雙擊動(dòng)態(tài)文本(Ztre.ZYTEXT),選格式為“編碼—HTML編碼格式”,如圖4-2-6所示:

圖4-2-6 設(shè)動(dòng)態(tài)文本格式

  (4)選擇表格ztre的第一、二、三行,并把它們定義的重復(fù)區(qū)域,其設(shè)置如圖4-2-7所示。

圖4-2-7? 定義重復(fù)區(qū)域

  這樣就完成了主頁插入數(shù)據(jù)集和數(shù)據(jù)綁定工作。

4.3 分頁顯示

  (1)選擇“首頁”,在【服務(wù)器行為】面板,單擊“+”按鈕,選擇【數(shù)據(jù)集分頁】→【移至第一頁】,如圖4-3-1所示:

圖4-3-1? 數(shù)據(jù)集分頁菜單

  (2)在彈出的對(duì)話框中,選擇數(shù)據(jù)集為Ztre,按“確定”鍵,如圖4-3-2所示:

圖4-3-2? 移至第一頁對(duì)話框

  (3)選定“前一頁”,定義為數(shù)據(jù)集分頁的“移至前一頁”;選定“后一頁”,定義為數(shù)據(jù)集分頁的“移至下一頁”;選定“最后”,定義為數(shù)據(jù)集分頁的“移至最后一頁”。

  (4)把“頁碼”改為“當(dāng)前頁碼:”在【服務(wù)器行為】面板,單擊“+”按鈕,選擇【顯示記錄記數(shù)】→【顯示當(dāng)前頁號(hào)】。

  (5)保存了index.aspx,這樣就完成了首頁的設(shè)計(jì)工作,在Access中給相應(yīng)ZT表、YH表隨便輸入幾個(gè)記錄,進(jìn)行IE瀏覽器中瀏覽(下面的章節(jié)中如無特別說明,筆記全屬于“網(wǎng)絡(luò)編程”欄目),大概如圖4-3-3所示:

圖4-3-3 首頁瀏覽圖

5.1? 筆記菜單分欄實(shí)現(xiàn)

  設(shè)計(jì)思路:修改模板bkblog.dwt.aspx中菜單分欄的超級(jí)鏈接,進(jìn)而更新所有網(wǎng)頁;打開首頁時(shí),瀏覽按時(shí)間降序方式顯示所學(xué)習(xí)筆記的內(nèi)容,點(diǎn)擊菜單分欄,又能根據(jù)分欄進(jìn)行按時(shí)間降序方式分類顯示學(xué)習(xí)筆記內(nèi)容。

  5.1.1 建立模板菜單

  (1)打開模板bkblog.dwt.aspx,選擇動(dòng)態(tài)文本(menuda.LM),創(chuàng)建超級(jí)鏈接,鏈接到首頁(index.aspx),選擇【代碼顯示視圖】,把鼠標(biāo)移至如圖5-1-1所示的紅色垂直線的地方。(下面沒有特別說明所有符號(hào)都是英文字符)

圖5-1-1? 鼠標(biāo)移至到鏈接屬性

  (2)輸入“?menanw=”(menanw就是的參數(shù)變量),切換到【綁定】面板,拖拉數(shù)據(jù)集(menuda)下的字段LMID到到剛才輸入的等于號(hào)后面,結(jié)果如圖5-1-2所示:

圖5-1-2 插入動(dòng)態(tài)屬性(a.href)

  (3)切換到【服務(wù)器行為】面板,可以看已經(jīng)增加一個(gè)服務(wù)器行為:動(dòng)態(tài)屬性(a.href),如圖5-1-3所示:

圖5-1-3 服務(wù)器行為面板

  (4)選擇“主頁”菜單,創(chuàng)建鏈接到index.aspx;選擇“聯(lián)系我們”,創(chuàng)建鏈接到mailto:wen110@21cn.com。

  (5)保存bkblog.dwt.aspx模板,這時(shí)會(huì)彈出如圖5-1-4所示的對(duì)話框。

圖5-1-4? 更新模板文件對(duì)話框。

  (6)單擊“更新”按鈕,完成筆記菜單分欄,并更新首頁index.aspx。

  5.1.2? 在首頁中實(shí)現(xiàn)分欄顯示

  (1)打開首頁index.aspx,切換到【服務(wù)器行為】面板,雙擊數(shù)據(jù)集(Ztre),在彈出的數(shù)據(jù)集對(duì)話框中,單擊“高級(jí)”按鈕,如圖5-1-5所示。選擇【SQL】文本區(qū)域中的SQL命令進(jìn)行復(fù)制,建議把它粘貼到新建立的記事本或Word文本中,它在以后步驟中將會(huì)有很大作用(熟悉SQL語言,可以跳過此步驟)。

圖5-1-5? 數(shù)據(jù)集高級(jí)對(duì)話框

  (2)單擊“簡(jiǎn)單”按鈕,在【篩選】下拉菜單中選擇篩選字段為L(zhǎng)MID,選“URL參數(shù)”作為參數(shù)傳遞方式,輸入?yún)?shù)變量為menanw,按“確定”鍵,結(jié)果如圖5-1-6所示:

圖5-1-6? 修改Ztre數(shù)據(jù)集為篩選

  (3)對(duì)首頁進(jìn)行IE瀏覽,瀏覽結(jié)果沒有記錄,如圖5-1-7所示

圖5-1-7? 首頁瀏覽圖

  (4)在首頁IE瀏覽中,單擊鏈接“網(wǎng)絡(luò)編程”,結(jié)果如上章的圖4-3-3所示,顯示出所有網(wǎng)絡(luò)編程的學(xué)習(xí)筆記。

  “等等,這與原先的設(shè)計(jì)思路不符合!只有按分欄顯示,不能顯示所有學(xué)習(xí)筆記!”這里還有個(gè)ASP.NET頁間數(shù)據(jù)傳遞的問題:Windows應(yīng)用程序中的各Form窗體間數(shù)據(jù)傳遞可以通過定義全局變量(Public static 變量)等方法來實(shí)現(xiàn)。而這些方法卻無法用以ASP.NET中各Web頁面數(shù)據(jù)傳遞。例如:當(dāng)點(diǎn)擊數(shù)據(jù)集導(dǎo)航條會(huì)有個(gè)Ztre_currentPage的數(shù)據(jù)傳遞,卻不能傳遞menanw的數(shù)據(jù),也就是說當(dāng)點(diǎn)擊數(shù)據(jù)集導(dǎo)航條的任何一個(gè)超級(jí)鏈接,menan傳遞的數(shù)據(jù)永遠(yuǎn)是空值,這就不能既實(shí)現(xiàn)分欄顯示,又同時(shí)進(jìn)行在分欄下的分頁顯示。這里是采取session進(jìn)行參數(shù)傳遞的方法解決。

  (5)為了把參數(shù)變量menanw傳遞給session("menanw"),切換到代碼視圖,在<html>標(biāo)簽之前,插入如圖5-1-8紅色圈中所示的代碼。

圖5-1-8? 給index.aspx插入頁面載入默認(rèn)函數(shù)

  (6)在【服務(wù)器行為】面板中選擇數(shù)據(jù)集(Ztre),如圖5-1-9所示,帶黑色部分的就是數(shù)據(jù)集(Ztre)定義代碼。

圖5-1-9? 數(shù)據(jù)集Ztre的代碼

  (7)找到代碼:

CommandText='<%# "SELECT * FROM ZTRE WHERE LMID = ? ORDER BY ZITIME ASC" %>'

  把上面的代碼改為:

CommandText='<%# IIf(((request.QueryString("menanw")<>nothing) or Request.QueryString("Ztre_CurrentPage") <> Nothing),"SELECT * FROM ZTRE WHERE LMID = ? ORDER BY ZITIME DESC","SELECT * FROM ZTRE? ORDER BY ZITIME DESC") %>'

  (8)找到代碼:

<Parameter? Name="@LMID"? Value='<%# IIf((request.QueryString("menanw") <> Nothing), request.QueryString("menanw"), "") %>'? Type="Integer"?? /></Parameters></MM:DataSet>

  把上面的代碼改為:

<Parameter? Name="@LMID"? Value='<%# IIf((session("menanw") <> Nothing), session("menanw"), "") %>'? Type="Integer"?? /></Parameters></MM:DataSet>

  (9)進(jìn)行IE瀏覽,結(jié)果第四章的圖4-3-3所示。完成既定的設(shè)計(jì)思路。

  

5.2? 回復(fù)頁面的實(shí)現(xiàn)

  設(shè)計(jì)思路:能夠?qū)崿F(xiàn)點(diǎn)擊筆記的標(biāo)題,就能夠夠鏈接出一個(gè)頁面,包括這筆記和相應(yīng)所有回復(fù)。從上一節(jié),可以這已不難了,只在筆記標(biāo)題的超級(jí)鏈接上進(jìn)行這個(gè)筆記的代碼參數(shù)傳遞就可以實(shí)現(xiàn)了。

  5.2.1? 基本頁面設(shè)計(jì)

  (1)新建由模板bkblog.dwt.aspx生成的ASP.NET VB 動(dòng)態(tài)頁hf.aspx,在mainbody可編輯區(qū)域中插入表格ztre,并進(jìn)行有關(guān)設(shè)計(jì),結(jié)果如圖5-2-1所示:

圖5-2-1 表格ztre設(shè)計(jì)圖

  (2)啟動(dòng)Access2003,建立FH表、YH表連接查詢HFRE,其實(shí)連接視圖及顯示字段如圖5-2-2所示。

圖5-2-2? 查詢HFRE的有關(guān)設(shè)計(jì)

  (3)按4.2.2數(shù)據(jù)集那節(jié)中(1)-(3)步驟,添加數(shù)據(jù)集Ztre,拖拉字段到相應(yīng)位置,并進(jìn)行動(dòng)態(tài)文本(Ztre.ZYTEXT)的格式設(shè)置,結(jié)果如圖5-2-3所示:

圖5-2-3? 綁定數(shù)據(jù)到表格ztre

  (4)修改數(shù)據(jù)集Ztre為篩選,篩選字段為ZTID,選“URL參數(shù)”作為參數(shù)傳遞方式,輸入?yún)?shù)變量為ztanw。

  (5)添加數(shù)據(jù)集Hfre,篩選字段為ZTID,選“URL參數(shù)”作為參數(shù)傳遞方式,輸入?yún)?shù)變量為ztanw,結(jié)果如圖5-2-4所示:

圖5-2-4? 數(shù)據(jù)集Hfre的設(shè)計(jì)

  (6)拖拉數(shù)據(jù)集Hfre字段到表格ztre的相應(yīng)位置,設(shè)動(dòng)態(tài)文本(Htre.HFTEXT)的格式設(shè)置“編碼—HTML編碼格式”,將表格ztre的第5、6、7行,定義為重復(fù)區(qū)域,定義數(shù)據(jù)分頁到表格ztre,結(jié)果如圖5-2-5所示:

圖5-2-5? 綁定數(shù)據(jù)集Htre到表格ztre中

  (7)打開首頁index.aspx,選擇動(dòng)態(tài)文本(Ztre.ZTNAME),創(chuàng)建超級(jí)鏈接,鏈接到hf.aspx,切換到代碼視圖,把鏈接屬性改為:hf.aspx?ztanw=,拖拉數(shù)據(jù)集Ztre下的字段ZTID到等于號(hào)之后,結(jié)果如圖5-2-6所示:

圖5-2-6 在代碼中添加動(dòng)態(tài)超級(jí)鏈接

  (8)保存hf.aspx和index.asps,在Access中給相應(yīng)HF表、YH表隨便輸入幾個(gè)記錄,進(jìn)行IE瀏覽器中瀏覽index.asps,點(diǎn)出有回復(fù)的學(xué)習(xí)筆記主題,如圖5-2-7所示:

圖5-2-7? 回復(fù)頁的顯示

  (9)再點(diǎn)擊數(shù)據(jù)集導(dǎo)航的任何一個(gè)超級(jí)鏈接,結(jié)果如圖5-2-8所示:

圖5-2-8? 點(diǎn)擊數(shù)據(jù)集導(dǎo)航后頁面結(jié)果

  啊!全沒了!這就是ASP.NET網(wǎng)頁間數(shù)據(jù)傳遞的問題。得像5.1節(jié)中那進(jìn)行修改。

  (10)切換到代碼視圖,在<html>標(biāo)簽之前,插入如圖5-2-9紅色圈中所示的代碼。

圖5-2-9? 給hf.aspx插入頁面載入默認(rèn)函數(shù)

  (11)找到數(shù)據(jù)集Ztre中的代碼:

? <Parameter? Name="@ZTID"? Value='<%# IIf((request.QueryString("ztanw") <> Nothing), request.QueryString("ztanw"), "") %>'? Type="Integer"?? />?

  把上面代碼中request.QueryString("ztanw")替代為session("ztanw"),結(jié)果代碼修改為

<Parameter? Name="@ZTID"? Value='<%# IIf((session("ztanw")<> Nothing), session("ztanw"), "") %>'? Type="Integer"?? />

  (12)找到數(shù)據(jù)集Hfre中的代碼:

? <Parameter? Name="@ZTID"? Value='<%# IIf((request.QueryString("ztanw") <> Nothing), request.QueryString("ztanw"), "") %>'? Type="Integer"?? />?

  把上面代碼中request.QueryString("ztanw")替代為session("ztanw"),結(jié)果代碼修改為

<Parameter? Name="@ZTID"? Value='<%# IIf((session("ztanw")<> Nothing), session("ztanw"), "") %>'? Type="Integer"?? />

  (13)保存hf.aspx。

  

6.1? 基本頁面設(shè)計(jì)

  6.1.1 模板bkblog.dwt.aspx頁面的修改

  (1)打開模板bkblog.dwt.aspx,在左邊欄目插入表格Lefttab,在第一行中插入表單Yhlogfrm,在表單Yhlogfrm中插入表格logtab,并插入有關(guān)文本框、文本區(qū)域及按鈕,結(jié)果如圖6-1-1所示:

圖6-1-1? 模板中用戶登錄設(shè)計(jì)

  (2)將作者相應(yīng)的文本框命名為L(zhǎng)ogname;將密碼相應(yīng)的文本框命名為L(zhǎng)ogpass,類型改為密碼;“注冊(cè)”按鈕的動(dòng)作改為“無”;把“登錄”按鈕的動(dòng)作改為“提交表單”。

  (3)選擇按鈕“注冊(cè)”按鈕,在【行為】面板中,添加行為轉(zhuǎn)到URL,在彈出的對(duì)話框中,輸入鏈接為“../yhinlog.aspx” 如圖6-1-2所示:

圖6-1-2? 添加轉(zhuǎn)到URL的行為

  (4)保存模板,更新所有的網(wǎng)頁。

  6.1.2? 注冊(cè)頁面的設(shè)計(jì)

  (1)新建由模板bkblog.dwt.aspx生成的ASP.NET VB 動(dòng)態(tài)頁yhinlog.aspx,在mainbody可編輯區(qū)域中插入表單Yhinfrm,再插入表格yhinlog,并進(jìn)行有關(guān)設(shè)計(jì),結(jié)果如圖6-1-3所示:

圖6-1-3? 表格yhinlog的設(shè)計(jì)

  (2)選擇用戶名相應(yīng)的文本框,切換到標(biāo)簽面板,展開“CSS/輔助功能”,在id中輸入YHNAME;展開“未分類”,輸入runat,server,把YHNAME文本框改為服務(wù)器控件,如圖6-1-4所示:

圖6-1-4? 修改文本框標(biāo)簽

  (3)依此類推,密碼相應(yīng)的文本框命名為YHPASS,密碼再確認(rèn)相應(yīng)的文本框命名為REPASS,QQ碼相應(yīng)的文本框命名為YHQQ,Email相應(yīng)的文本框命名為YHEMAIL,主頁相應(yīng)的文本框命名為YHINDEX,將所有文本框改為服務(wù)器控件。

  (4)選擇表單Yhinfrm,并將其改為服務(wù)器控件,保存yhinlog.aspx。

  6.1.3? 完成注冊(cè)頁面的設(shè)計(jì)

  (1)由模板bkblog.dwt.aspx新建動(dòng)態(tài)動(dòng)態(tài)網(wǎng)頁yhlogok.aspx,在mainbody可編輯區(qū)域中插入三行一列的表格logok,在第二行中輸入文字“歡迎”,點(diǎn)擊ASP.NET快捷菜單中的“綁定數(shù)據(jù)”,再點(diǎn)擊“修剪的表單元素”,把光標(biāo)移到如圖6-1-5所示的位置,輸入“YHNAME”。

圖6-1-5? 插入修剪的表單元素

  (2)返回設(shè)計(jì)視圖,繼續(xù)輸入文字“Donking's BLOG!”,并、對(duì)表格logok,進(jìn)行有關(guān)設(shè)計(jì),結(jié)果如圖6-1-6所示:

圖6-1-6 表格logok的設(shè)計(jì)

  (3)選擇按鈕“主頁”按鈕,在【行為】面板中,添加行為轉(zhuǎn)到URL,在彈出的對(duì)話框中,輸入鏈接為“index.aspx”,保存yhlogok.aspx

6.2驗(yàn)證用戶注冊(cè)

  為了防止用戶輸入錯(cuò)誤的注冊(cè)信息,要對(duì)用戶注冊(cè)信息進(jìn)行規(guī)范和驗(yàn)證。

  (1)打開yhinlog.aspx,打開ASP.NET快捷菜單,點(diǎn)擊【更多標(biāo)簽】,如圖6-2-1所示:

圖6-2-1? ASP.NET 快捷菜單

  (2)在彈出的標(biāo)簽選擇器中展開“ASP.NET 標(biāo)簽”→“驗(yàn)證服務(wù)器控件”,在右窗架中選中“asp:RequiredFieldvalidator”,單擊“插入”按扭,如下圖6-2-2所示:

圖6-2-2? 標(biāo)簽選擇器

  (3)在彈出的標(biāo)簽編輯器中,為文本框YHNAME添加驗(yàn)證控件,填寫各項(xiàng)如圖6-2-3所示:

圖6-2-3? RequiredFieldValidator標(biāo)簽編輯器

  (4)打開標(biāo)簽選擇器,插入ASP.NET驗(yàn)證服務(wù)器控件→CompareValidator控件,為文本框YHPASS添加與REPASS文本框?qū)Ρ闰?yàn)證控件,填有關(guān)信息如圖6-2-4所示:

圖6-2-4? CompareValidato標(biāo)簽編輯器

  (5)插入ASP.NET驗(yàn)證服務(wù)器控件→Rangevalidator控件,為文本框YHQQ添加驗(yàn)證控件,填有關(guān)信息如圖6-2-5所示:

圖6-2-5? Range validator標(biāo)簽編輯器

  (6)插入ASP.NET驗(yàn)證服務(wù)器控件→Regularexpressionvalidator控件,為文本框YHEMAIL添加驗(yàn)證控件,填各項(xiàng)如圖6-2-6所示,其中的驗(yàn)證表達(dá)式為:/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*

圖6-2-6 Regular expression validator標(biāo)簽編輯器

  (7)插入ASP.NET驗(yàn)證服務(wù)器控件→Regularexpressionvalidator控件,為文本框YHINDEX添加驗(yàn)證控件,填寫各項(xiàng)如圖6-2-7所示,其中的驗(yàn)證表達(dá)式為:http://([/w-]+/.)+[/w-]+(/[/w- ./?%&amp;=]*)?

圖6-2-7? Regular expression validator 標(biāo)簽編輯器

  (8)應(yīng)該再一個(gè)驗(yàn)證控件防止用戶注冊(cè)的用戶名重復(fù)。

  ①添加數(shù)據(jù)集yhinlog,設(shè)為篩選,篩選字段為YHNAME,參數(shù)變量為來之表單變量YHNAME,其設(shè)置如圖6-2-8所示:

圖6-2-8? 插入數(shù)據(jù)集yhinlog

  ②插入ASP.NET驗(yàn)證服務(wù)器控件→CustomValidator控件,為文本框YHINDEX再添加驗(yàn)證控件,填寫各項(xiàng)如圖6-2-9所示,其中的客戶端驗(yàn)證功能為:

<%# IIf(yhinlog.RecordCount>0,FALSE,TRUE) %>

圖6-2-9? Custom Validator標(biāo)簽編輯器

  (9)保存yhinlog.aspx,在IE中進(jìn)行瀏覽,如果出現(xiàn)圖6-2-10所示的對(duì)話框,那說明的dklog站點(diǎn)根目錄下沒有子目錄aspnet_client,也是就沒有驗(yàn)證控件必要的JS腳本庫。這個(gè)在安裝.NET框架的時(shí)候,安裝程序已經(jīng)復(fù)制在默認(rèn)站點(diǎn)c:/ Inetpub/wwwroot的根目錄下,復(fù)制c:/ Inetpub/wwwroot中的子目錄aspnet_client到dkblog站點(diǎn)根目錄下,就OK了!

圖6-2-10? 找不到必要JS腳本庫

6.3? 添加“插入記錄”服務(wù)器行為

  (1)打開yhinlog.aspx,添加【插入記錄】服務(wù)器行為,表單的有關(guān)數(shù)據(jù)添加到數(shù)據(jù)表YH中,其有關(guān)設(shè)置如圖6-3-1所示:

圖6-3-1? 添加【插入記錄】服務(wù)器行為

  (2)ASP.NET是不支持gb2312編碼傳輸。切換到代碼視圖,找到:

<%@ Page Language="VB" ContentType="text/html" ResponseEncoding="gb2312" %>

  把 ResponseEncoding="gb2312" 這句代碼刪掉就OK了:

<%@ Page Language="VB" ContentType="text/html"%>

  (3)保存,在IE中瀏覽提交用戶注冊(cè)信息,在Access打開YH表,可以發(fā)現(xiàn)提交的中文信息全變成了??。那怎么辦?不用急,這是由于TASP.NET不支持gb2312編碼傳輸所致。打開yhinlog.aspx,切換到代碼視圖,找到第一行代碼:

<%@ Page Language="VB" ContentType="text/html" ResponseEncoding="gb2312" %>

  把它改為:

<%@ Page Language="VB" ContentType="text/html" %>

  也就是去除ResponseEncoding="gb2312"。其他網(wǎng)頁也按此法進(jìn)行修改,防止中文提交信息出錯(cuò)。

  

7.1? 用戶登錄服務(wù)器行為

  用戶登錄,經(jīng)過驗(yàn)證正確,頁面換了個(gè)用戶登錄后的面貌。

  (1)打開模板bkblog.dwt.aspx,在左邊欄插入表格yhtab,并設(shè)計(jì)如圖7-1黑色圈中所示。

  (2)插入關(guān)于YH表查詢的數(shù)據(jù)集yhlog,以驗(yàn)證用戶登錄的正確。

 ?、賹?shù)據(jù)集yhlog設(shè)為篩選,如圖7-2所示。

圖7-1? 表格yhtab的設(shè)計(jì)圖???

?圖7-2? 插入數(shù)據(jù)集yhlog

  ②點(diǎn)擊“高級(jí)”按鈕,切換到高級(jí)數(shù)據(jù)集模式,如圖7-3所示。

圖7-3? 插入數(shù)據(jù)集yhlog

 ?、埸c(diǎn)擊參數(shù)“+”,彈出“編輯參數(shù)”對(duì)話框,填寫名稱為“@Logpas”,類型選擇“WChar”,如圖7-4所示。

圖7-4? 添加參加Logpass

 ?、茳c(diǎn)擊“建立”按鈕,彈出“生成值”對(duì)話框,名稱為“Logpass”,源選擇“表單變量”,如圖7-5所示。

圖7-5? 生成值對(duì)話框

  ⑤單擊“確定”保存設(shè)置,一直回到數(shù)據(jù)集yhlog對(duì)話框。修改SQL語句,修改結(jié)果如圖7-6所示。

圖7-6? 對(duì)數(shù)據(jù)集yhlog進(jìn)行修改

  (3)在<html>標(biāo)簽之前,插入如圖7-7紅色圈所示的代碼。

圖7-7? 定義函數(shù)uselog

  (4)拖拉模板bkblog.dwt.aspx中的數(shù)據(jù)集yhlog下的字段YHNAME到頁面任何位置,再拖拉數(shù)據(jù)集yhlog下的字段YHID在其后,代碼如下:

<%# yhlog.FieldValue("YHNAME", Container)? %><%# yhlog.FieldValue("YHID", Container)? %>

  把上面代碼改為:

<%# uselog(yhlog.FieldValue("YHNAME", Container),yhlog.FieldValue("YHID", Container)) %>

  (5)插入關(guān)于ZT表查詢的數(shù)據(jù)集bjre,返回該用戶發(fā)表的學(xué)習(xí)筆記總數(shù)。

 ?、賹?shù)據(jù)集設(shè)為“篩選”,篩選字段為:YHID,篩選方式為:輸入值,如圖7-8所示。

圖7-8? 插入數(shù)據(jù)集bjre

 ?、邳c(diǎn)擊“高級(jí)”,切換到高級(jí)數(shù)據(jù)集模式,將SQL修改成如圖7-9所示。

圖7-9? 修改數(shù)據(jù)集bjre

 ?、埸c(diǎn)擊“編輯”按鈕,在文本域中把YHID改為session(”USEID”),結(jié)果如圖7-10所示。

圖7-10? 編輯數(shù)據(jù)集bire的參數(shù)

 ?、馨础按_定”鍵,再按“確定”鍵完成數(shù)據(jù)集bire。

  (6)插入關(guān)于HF表查詢的數(shù)據(jù)集plre,返回該用戶發(fā)表的學(xué)習(xí)筆記總數(shù)。除了查詢表不同外,其他設(shè)置與數(shù)據(jù)集bjre相同(可以先復(fù)制粘貼數(shù)據(jù)集plre,再進(jìn)行修改)。

  (7)拖拉數(shù)據(jù)集bjre下的字段Eprl100到表格yhtab中的“發(fā)表筆記:”之后;拖拉數(shù)據(jù)集plre下的字段Eprl100到表格yhtab中的“發(fā)表回復(fù):”之后。

  (8)把光標(biāo)移到表格yhtab中的“用戶信息”之前,點(diǎn)擊ASP.NET快捷菜單下的“綁定數(shù)據(jù)”,結(jié)果如圖7-11所示。

圖7-11? 插入綁定數(shù)據(jù)

  保持光標(biāo)在圖71紅色垂直線的位置,輸入:session(“USENAME”)

  (9)返回設(shè)計(jì)視圖,給表格yhtab中的“發(fā)表新筆記”建立超級(jí)鏈接:../ztfb.aspx

  給表格yhtab中的“修改資料”建立超級(jí)鏈接:../yhsg.aspx

  結(jié)果如圖7-12所示。

圖7-12? 表格yhtab的修改

  (10)選擇表格yhtab,返回代碼視圖,按“Ctrl+X”或在【編輯】菜單中選擇“剪切”,老方法:把它粘貼到新建立的記事本或Word文檔中。

  (11)返回設(shè)計(jì)視圖,選擇表格logtab,把光標(biāo)移至如圖7-13所示的紅色垂直線的位置。

圖7-13? 移至光標(biāo)所在位置

  (12)輸入代碼,如圖7-14紅色圈中所示。

圖7-14? 在標(biāo)簽<form>之前插入代碼

  (13)把光標(biāo)移到Y(jié)hlogfrm結(jié)束標(biāo)簽</form>之后,輸入代碼,如圖7-15紅色圈中所示。

圖7-15? 標(biāo)簽</form>之后插入代碼

  (14)把第7步中剪切的表格yhtab粘貼在代碼<%end? if%>代碼之前,<% else %>之后。

  (15)保存模板bkblog.dwt.aspx。打開所有基本于bkblog.dwt.aspx模板建立的網(wǎng)頁,分別在【服務(wù)器行為】中把bkblog.dwt.aspx模板中新添加的數(shù)據(jù)集yhlog、bjre、plre,復(fù)制、粘貼過來。再插入如第3步驟的代碼,就OK了!

  (16)在IE瀏覽器中瀏覽index.aspx,用戶登錄前如圖7-16所示,用戶登錄成功如圖7-17所示。記得ASP.NET是不支持gb2312編碼傳輸,要進(jìn)行修改,上一章中已說過了,以后不再哆嗦。

圖7-16? 用戶登錄前

圖7-17? 用戶登錄后

  提醒:為了方便讀者學(xué)習(xí),教程分成模塊來寫。實(shí)際上一開始就得在模板中所有功能做好,特別是在模板必須插入的數(shù)據(jù)集及頁頭載入程序,因?yàn)檫@些在后期修改后不能更新網(wǎng)頁。

7.2? 用戶發(fā)表回復(fù)信息

  用戶登錄后,就可以對(duì)?各學(xué)習(xí)筆記發(fā)表回復(fù)信息。

  (1)打開hf.aspx,插入表單yhplfrm,再插入表格Hftab,在表格中插入服務(wù)器文本框控件,ID為HFNAME;插入服務(wù)器文本區(qū)域控件,ID為HFTEXT;插入“發(fā)表”按鈕,ID為plbottom,將其設(shè)為禁用,結(jié)果如圖7-18所示。

圖7-18? 表格Hftab的有關(guān)設(shè)計(jì)

  (3)綁定數(shù)據(jù)session(“usename”)到表格Hftab中的“姓名:”之后(方法如7.1第8步驟綁定“用戶信息”前的用戶名)。

  (4)拖拉數(shù)據(jù)集Ztre下的字段ZTNAME到文本框HFNAME,在文本框HFNAME的屬性窗口中,把初始值:

<%# Ztre.FieldValue("ZTNAME", Container) %>

  改為:

<%#? “RE:”&Ztre.FieldValue("ZTNAME", Container) %>

  (5)選擇按鈕plbottom,右鍵選擇狀態(tài)欄< input # plbottom>,在彈出快捷菜單中選擇“編輯標(biāo)簽”,如圖7-19所示。

圖7-19? 選擇< input # plbottom>快捷編輯標(biāo)簽

  (6)在彈出的< input # plbottom>快捷編輯標(biāo)簽中把:

disabled=”true”

  改為:

disabled=<%# iif((session("USENAME")<>nothing),false,true) %>

  結(jié)果如圖7-20所示。

圖7-20? 快捷< input # plbottom>編輯標(biāo)簽

  即設(shè)按鈕plbottom,當(dāng)用戶登錄前為禁用,用戶登錄后為可用。

  (4)添加插入記錄服務(wù)器行為,提交值來自表單yhplfrm,選擇插入表格為HF,其他設(shè)置如圖7-21所示。

圖7-21? 添加插入記錄服務(wù)器行為

  在圖7-21中,可以看到字段HFID、HFTIME、YHID、ZTID沒有獲取值。字段HFID是自動(dòng)編號(hào),數(shù)據(jù)庫會(huì)自動(dòng)給記錄添加數(shù)值;字段HFTIME在Access中已設(shè)默認(rèn)值為date(),所以數(shù)據(jù)庫會(huì)自動(dòng)給新增加的記錄添加當(dāng)天日期。那字段YHID就是登錄用戶的ID碼,字段ZTID就是要發(fā)表的筆記ID。所以要把登錄用戶的ID碼添加到字段YHID中,要發(fā)表的筆記ID碼添加到字段ZTID中。

  (5)返回到代碼視圖,找到插入記錄(dkconn,HF)的代碼,如圖7-22黑色已選擇部分。

圖7-22? 找到插入記錄(dkconn,HF)的代碼

  (6)把代碼:

CommandText='<%# "INSERT INTO HF (HFNAME, HFTEXT) VALUES (?, ?,)" %>'

  改為:

CommandText='<%# "INSERT INTO HF (HFNAME, HFTEXT, ZTID, YHID) VALUES (?, ?, ?, ?)" %>'

  (7)按次序添加參數(shù):

<Parameter? Name="@ZTID"? Value='<%# Ztre.FieldValue("ZTID", Container)? %>'? Type="Integer"?? />

?????? <Parameter? Name="@YHID"? Value='<%# SESSION("USEID")? %>'? Type="Integer"?? />

  結(jié)果如圖7-23所示。

圖7-23? 插入記錄(dkconn,HF)代碼的修改結(jié)果

  (8)在發(fā)布回復(fù)信息前,得對(duì)回復(fù)標(biāo)題和回復(fù)的內(nèi)容進(jìn)行驗(yàn)證,防止發(fā)布空標(biāo)題或空內(nèi)容的回復(fù)信息。參照6.2節(jié)中插入RequiredFieldValidato驗(yàn)證控件方法,分別給文本框HFNAME、文本區(qū)域控件HFTEXT添加RequiredFieldValidato驗(yàn)證控件。

  (9)用戶發(fā)布回復(fù)信息時(shí),還得給學(xué)習(xí)筆記的回復(fù)總數(shù)自動(dòng)增加1,也就是給ZT表下的HFZS字段自動(dòng)增加1。

 ?、僭凇痉?wù)器行為】面板中,插入“更新記錄”服務(wù)器行為,設(shè)更新表格為ZT,暫時(shí)設(shè)提交值,來自表單yhplfrm,暫時(shí)設(shè):‘HFZS’從‘HFTEXT’獲取值(作為‘Integer’);暫時(shí)設(shè):‘ZTID’將‘HFTEXT’ 用作‘Integer’來選擇記錄

 ?、跒槭裁慈菚簳r(shí)的?那是為了先讓Dreamweaver自動(dòng)生成一些代碼,后方便修改。先切換代碼視圖,找到更新記錄(dkconn,ZT)的原代碼,找到其中的代碼:

<Parameter Name="@HFZS" Value='<%# IIf((Request.Form("HFTEXT") <> Nothing), Request.Form("HFTEXT"), "") %>' Type="Integer" />?

<Parameter Name="@ZTID" Value='<%# IIf((Request.Form("HFTEXT") <> Nothing), Request.Form("HFTEXT"), "") %>' Type="Integer" />?

  把它改為:

<Parameter Name="@HFZS" Value='<%# Ztre.FieldValue("HFZS", Container)+1 %>' Type="Integer" />

<Parameter Name="@ZTID" Value='<%#? session("ztanw") %>' Type="Integer" />

  (10)保存hf.aspx。

7.3? 用戶發(fā)表學(xué)習(xí)筆記

  用戶登錄后,除了可以發(fā)表回復(fù)信息外,還可以發(fā)表新的學(xué)習(xí)筆記。

  (1)新建由模板bkblog.dwt.aspx生成動(dòng)態(tài)網(wǎng)頁ztfb.aspx,在mainbody可編輯區(qū)域中插入一列五行的表格ztfb。

  (2)添加數(shù)據(jù)集zthb,設(shè)篩選為YHID,并設(shè)參數(shù)為階段變量USENAME,其設(shè)計(jì)如圖7-24所示。

圖7-24? 添加數(shù)據(jù)集zthb

  (3)拖拉數(shù)據(jù)集下的有關(guān)字段到表格ztfb中,方法參照第4.2節(jié)的方法。

  (4)打開hf.aspx,復(fù)制表單yhplfrm,把它粘貼到網(wǎng)頁ztfb.aspx中的表格zthb的第五行,清空文本框HFNAME,并進(jìn)行必要的修改,結(jié)果如圖7-25所示。

圖7-25? 表格ztfb的設(shè)計(jì)

  (2)把文本框HFNAME改名為ZTNAME,文本區(qū)域HFTEXT改名為ZTTEXT。

  (3)設(shè)表格zthb的第一、二、三行為數(shù)據(jù)集zthb的重復(fù)區(qū)域,再在表格的第四行中插入數(shù)據(jù)集導(dǎo)航。

  (4)插入列表/菜單LMID,點(diǎn)擊其屬性窗口中的列表值,在彈出的列表值對(duì)話框中,輸入項(xiàng)目標(biāo)簽為:設(shè)計(jì)項(xiàng);值為:1,按“確定”鍵,如圖7-26所示。

圖7-26? LMID列表值對(duì)話框

  (5)保持列表/菜單LMIDl在選,切換到代碼視圖,找到列表/菜單LMID的原代碼,拖拉數(shù)據(jù)集menuda下的字段LMID,替換value等于號(hào)的數(shù)據(jù)1,如圖7-27所示。

圖7-27? 拖拉數(shù)據(jù)集menuda下的字段LMID

  (6)拖拉數(shù)據(jù)集menuda下的字段LM,替換“設(shè)計(jì)項(xiàng)”,結(jié)果如圖7-28所示。

圖7-28? 拖拉數(shù)據(jù)集menuda下的字段LM

  (7)選擇圖7-3-5紅色圈中的代碼,并把它定義為數(shù)據(jù)集menuda的重復(fù)區(qū)域,結(jié)果如圖7-29所示。

圖7-29? 定義列表中的數(shù)據(jù)集menuda重復(fù)區(qū)域

  (8)添加“插入記錄”服務(wù)器行為,其設(shè)置如圖7-30所示。

圖7-30? 添加“插入記錄”服務(wù)器行為

  (9)切換到代碼視圖,找到插入記錄(dkconn,ZT)的原代碼,找到代碼:

CommandText='<%# "INSERT INTO ZT (LMID, ZTNAME, ZYTEXT) VALUES (?, ?, ?)" %>'

  改為:

CommandText='<%# "INSERT INTO ZT (LMID, ZTNAME, ZYTEXT,YHID) VALUES (?, ?, ?, ?)" %>'

  (10)添加參數(shù):

<Parameter Name="@YHID" Value='<%# session("USEID") %>' Type="Integer" />

  結(jié)果如圖7-31所示。

圖7-31? 插入記錄(dkconn,ZT)修改的原代碼

7.4? 修改用戶資料

  修改用戶資料頁面設(shè)計(jì)與用戶注冊(cè)頁面設(shè)計(jì)基本相同。

  (1)打開注冊(cè)頁面yhlogok.aspx,把它另存為yhsg.aspx,并進(jìn)行適當(dāng)?shù)男薷?#xff0c;結(jié)果如圖7-32所示。

圖7-32? yhsg.aspx頁面設(shè)計(jì)

  (2)刪除“插入記錄(dkconn,YH)”服務(wù)器行為,添加數(shù)據(jù)集yhsg,如圖7-33所示。

圖7-33? 插入數(shù)據(jù)集yhsg

  (3)綁定數(shù)據(jù)集yhsg下的有關(guān)字段到相應(yīng)的文本框中,結(jié)果如圖7-34所示。

圖7-34? 綁定動(dòng)態(tài)文本到有關(guān)文本框中

  (4)添加更新記錄服務(wù)器行為,暫時(shí)設(shè):’YHID’將’YHNAME’用作’Integer’來選擇記錄,結(jié)果如圖7-35所示。

圖7-35? 添加更記錄服務(wù)器行為

  (5)在更記錄的原代碼中,找到代碼:

<Parameter Name="@YHID" Value='<%# IIf((Request.Form("YHNAME") <> Nothing), Request.Form("YHNAME"), "") %>' Type="Integer" />?

  將其改為:

<Parameter Name="@YHID" Value='<%# IIf((Not Session("USEID") Is Nothing), Session("USEID"), "") %>' Type="Integer" />?

  (6)保存yhsg.aspx。

8.1? 管理員登錄的實(shí)現(xiàn)

  (1)新建空白的APS.NET VB動(dòng)態(tài)頁gllogin.aspx,插入表單glfrm,再插入表格,設(shè)置如圖8-1所示。

圖8-1? gllogin的頁面設(shè)計(jì)

  (2)設(shè)管理員相應(yīng)的文本框的ID為GLY,密碼對(duì)應(yīng)的文本框的ID為GLPASS。

  (3)添加數(shù)據(jù)集gly,設(shè)為篩選,如圖8-2所示。

圖8-2? 添加數(shù)據(jù)集gly

  (4)點(diǎn)擊“高級(jí)”按鈕,添加參數(shù)@GLPASS,如圖8-3所示。

圖8-3? 添加參數(shù)@GLPASS

  (5)在數(shù)據(jù)集gly高級(jí)對(duì)話框中,將SQL命令改為如圖8-4所示。

圖8-4? 數(shù)據(jù)集gly高級(jí)對(duì)話框

  (6)切換到代碼視圖,在<html>標(biāo)簽之前,插入如圖8-5所示的代碼。

圖8-5? 在<html>標(biāo)簽之前插入代碼

  (7)保存gllogin.aspx。

8.2? 學(xué)習(xí)筆記管理

  從上節(jié)中,可以看到管理員登錄成功后,鏈接到Doking’s BLOG的首頁,對(duì)學(xué)習(xí)筆記進(jìn)行管理。但以前章節(jié)中,index.aspx沒有刪除學(xué)習(xí)筆記的功能。這一節(jié)將為它添加這一功能。

  (1)在表格ztre的第一行中,插入asp標(biāo)簽Label1,文本為:刪除,如圖8-6所示。

圖8-6? 插入asp標(biāo)簽Label1

  (2)右鍵選擇asp標(biāo)簽Label1,選擇快捷菜單下的“編輯標(biāo)簽”,選擇“樣式信息”,設(shè)為不可見,如圖8-7所示。

圖8-7? 設(shè)asp標(biāo)簽Label1為不可見

  (3)插入表單控件下的復(fù)選框,命名為ZTID,插入表單控件下的按鈕,ID為GLY,結(jié)果如圖8-8所示。

圖8-8? 在表格ztre的設(shè)置

  (4)切換到【標(biāo)簽】面板下的【屬性】選項(xiàng)卡,展開“常規(guī)”項(xiàng),在“value”項(xiàng)中單擊動(dòng)態(tài)數(shù)據(jù),如圖8-9所示。

圖8-9? ZTID標(biāo)簽屬性面板

  (5)在彈出的“動(dòng)態(tài)數(shù)據(jù)”對(duì)話框中,選擇數(shù)據(jù)集Ztre下的字段ZTID,按“確定”鍵,如圖8-10所示。

圖8-10? 動(dòng)態(tài)數(shù)據(jù)窗口

  (6)在狀態(tài)欄下右鍵選擇<input#ZIID>打開快速編輯標(biāo)簽窗口,在其標(biāo)簽中添加代碼:

style="visibility: <%# iif(session("GLY")<>nothing,"visible","hidden")%>" value="<%# Ztre.FieldValue("ZTID", Container) %>"

  如圖8-11深藍(lán)色所示。

圖8-11? 快速編輯<input#ZIID>標(biāo)簽

  (7)選擇按鈕GLY,在狀態(tài)欄下右鍵選擇<input#GLY>打開快速編輯標(biāo)簽窗口,在其標(biāo)簽中添加代碼:

style="visibility: <%# iif(session("GLY")<>nothing,"visible","hidden")%>" value="<%# Ztre.FieldValue("ZTID", Container) %>"

  (8)添加“刪除記錄”服務(wù)器行為,其設(shè)置如圖8-12所示。

圖8-12? 添加“刪除記錄”服務(wù)器行為

  (9)按“確定”鍵,完成添加“刪除記錄”服務(wù)器行為。切換到代碼視圖找到該“刪除記錄”服務(wù)器行為的原代碼,如圖8-13紅色圈中所示。

圖8-13? “刪除記錄”服務(wù)器行為的原代碼

  (10)刪除如圖8-2-8中所示的5、8、12、13、14行的代碼,將第10行中Debug的值true改為false,添加新行為:id=“del1”,修改后如圖8-14紅色圈中所示。

圖8-14? 修改后“刪除記錄”del1服務(wù)器行為的原代碼

  (11)復(fù)制圖8-2-9紅色圈中所示的代碼,即復(fù)制修改后“刪除記錄”del1服務(wù)器行為的原代碼,把它粘貼到適當(dāng)位置,改id為”del2”,如圖8-15所示。

圖8-15? 添加del2“刪除記錄”服務(wù)器行為

  (12)在頁面載入觸發(fā)的事件page_load中插入如圖8-16紅色圈中所示的代碼。

圖8-16? 在頁面載入觸發(fā)的事件page_load中插入的代碼

8.3? 筆記回復(fù)管理

  筆記回復(fù)管理與學(xué)習(xí)筆記管理的道理和方法是一致的。

  (1)打開index.aspx,復(fù)制asp標(biāo)簽Label1、表單控件ZTID和按鈕GLG,打開hf.aspx,把這三個(gè)控件粘貼到如圖8-17所示的位置,把表單控件ZTID的ID改為HFID。

圖8-17? 給hf.aspx粘貼控件

  (2)選擇復(fù)選框HFID,切換到【標(biāo)簽】面板下的【屬性】選項(xiàng)卡,展開“常規(guī)”項(xiàng),在“value”項(xiàng)中單擊動(dòng)態(tài)數(shù)據(jù),在彈出的“動(dòng)態(tài)數(shù)據(jù)”對(duì)話框中,選擇數(shù)據(jù)集Hfre下的字段HFID,按“確定”鍵,如圖8-18所示。

圖8-18? 動(dòng)態(tài)數(shù)據(jù)窗口

  (3)復(fù)制index.aspx 中的“del1”刪除記錄服務(wù)行為的原代碼,粘貼到hf.aspx中。

  (4)給hf.aspx頁面中的頁面載入觸發(fā)事件page_load插入如圖8-19紅色圈中所示的代碼。

圖8-19? 給h頁面載入觸發(fā)事件page_load插入代碼

  (5)找到表單yhplfrm的原代碼,將其移到表格ztre標(biāo)簽之前,結(jié)果如圖8-20所示。

圖8-20? 移動(dòng)表單yhplfrm的標(biāo)簽

  (6)在表格Hftab標(biāo)簽之前插入如圖8-21紅色圈所示的代碼。

圖8-21? 在表格Hftab標(biāo)簽之前插代碼

  (7)將表單yhplfrm結(jié)束標(biāo)簽</form>移到表格ztre標(biāo)簽之后,在表格Hftab標(biāo)簽之后插入如圖8-22紅色圈所示的代碼。

圖8-22? 在表格Hftab標(biāo)簽之后插代碼

  提醒:這里還有一個(gè)管理員退出登錄的問題,那就留給讀者動(dòng)動(dòng)腦筋。提示一下,只要設(shè)session(“GLY”)為空值或空字串就可以了。

9.1? 基本頁面設(shè)計(jì)

  打開模板dkblog.dwt.aspx,在左邊導(dǎo)航上添加文字設(shè)計(jì)如圖9-1所示。

圖9-1? 模板dkblog.dwt.aspx左邊導(dǎo)航文字設(shè)計(jì)

9.2? 在線人數(shù)統(tǒng)計(jì)

  在線人數(shù)統(tǒng)計(jì)的實(shí)現(xiàn)得依靠global.asax文件。global.asax文件包括了處理應(yīng)用程序層次事件的程序代碼,就像在經(jīng)典ASP中的Global.asa文件。在Global.asax中的<script>標(biāo)簽包含了面對(duì)應(yīng)用程序?qū)哟蔚氖录幚砥?。第一組的事件處理器負(fù)責(zé)處理應(yīng)用程序的開始以及停止事件。一個(gè)開始事件會(huì)在任何頁面第一次被請(qǐng)求的時(shí)候被喚醒。而應(yīng)用程序終止事件則會(huì)在應(yīng)用程序關(guān)閉的時(shí)候被喚醒。
建立global.asax文件,一般得手編?,F(xiàn)在可以Visual Web Developer 2005這個(gè)軟件中快速建立global.asax文件。

  (1)下載、安裝Visual Web Developer 2005。

  Visual Web Developer 2005 下載地址:

http://go.microsoft.com/fwlink/?linkid=30092&clcid=0x409

  下載后安裝,運(yùn)行后其歡迎界面如圖9-2所示。

圖9-2? Visual Web Developer 2005運(yùn)行歡迎界面

  (2)在Visual Web Developer 2005運(yùn)行后,選擇【File】→【New File】,在彈出【New File】對(duì)話框中,展開“Categories”的“Web”選項(xiàng),并選擇“Visual Basic”,選擇“Templates”中的“Global Application Class”,如圖9-3所示。

圖9-3? 新建立Global Application Class

  (3)單擊“Open”按鈕,新建交一個(gè)新的Glbal文件如圖9-4所示。

圖9-4? 一個(gè)新建立的Glbal文件

  (4)對(duì)Glbal文件進(jìn)行修改,修改后如圖9-5所示。

圖9-5? 修改Glbal文件

  (5)保存Glbal文件到D:/dkkblog根目錄下,文件名為Glbal.asax。

  (6)返回到Dreamweaver中,打開模板dkblog.dwt.aspx,并切換成代碼視圖,找到代碼:

<td class="BTD">本站在線人數(shù)統(tǒng)計(jì):人</td>

  并改為:

<td class="BTD">本站在線人數(shù)統(tǒng)計(jì):<%=Application("dk_uses")%> 人 </td>

  (7)保存模板。

  提醒:這里用Visual Web Developer 2005建立Glball.asax文件,只為了方便讀者,同時(shí)也讓讀者接觸一下Visual Web Developer 2005,這個(gè)新軟件功能十分強(qiáng)大。如果沒有Visual Web Developer 2005,大可直接新建一個(gè)空白記事本,編寫如上圖9-5所示的代碼,保存成Glball.asax文件就好了。

9.3? 站點(diǎn)筆記和回復(fù)的統(tǒng)計(jì)

  回想在“7.1? 用戶登錄服務(wù)器行為”中,曾為用戶統(tǒng)計(jì)其發(fā)表筆記與回復(fù),站點(diǎn)筆記和回復(fù)的統(tǒng)計(jì)與其類同。

  (1)打開模板dkblog.dwt.aspx,新建數(shù)據(jù)集zdbj,其設(shè)置如圖9-6所示;新建立數(shù)據(jù)集zdhf,其設(shè)置如圖9-7所示。

圖9-6? 數(shù)據(jù)集zdbj的設(shè)置圖

圖9-7? 數(shù)據(jù)集zdhf的設(shè)置圖

  (2)分別綁定數(shù)據(jù)集zbbj、數(shù)據(jù)集zbhf到頁面中,如圖9-8所示。

圖9-8? 綁定數(shù)據(jù)集zbbj、zbhf

  (3)保存模板dkblog.dwt.aspx,更新所有網(wǎng)頁。

既然Doking’s BLOG是學(xué)習(xí)筆記,那么按日歷可以查出所有筆記和筆記回復(fù)。

  難點(diǎn)分析:是不是要在模板中直接添加Calendar日歷控件?不!那是不行的!由于Calendar日歷控件是服務(wù)器控件,要在含有runat="server"表單該服務(wù)器控件,但一頁面中只能有一個(gè)含有runat="server"表單,不然有時(shí)會(huì)出現(xiàn)如圖10-1所示的錯(cuò)誤顯示。

圖10-1? 頁面只能有一個(gè)含有runat="server"表單的錯(cuò)誤

  那怎么辦?這里是采取嵌入式框架進(jìn)行轉(zhuǎn)移。

10.1? 添加Calendar日歷控件

  (1)新建一個(gè)空白ASP.NET VB動(dòng)態(tài)頁。

  (2)插入帶出runat="server"表單,設(shè)置ID=”Calfrm”。

  (3)點(diǎn)擊ASP.NET快捷菜單下的“更多標(biāo)簽按鈕,在彈出【標(biāo)簽選擇器】對(duì)話框中選擇“ASP.NET 標(biāo)簽”下的“asp Calendar”,如圖10-2所示。

圖10-2? 插入“asp Calendar”標(biāo)簽

  (4)按“插入”按鈕,彈出【標(biāo)簽編輯器—Calendar】對(duì)話框,如圖10-3所示。在這個(gè)對(duì)話中,可以對(duì)Calendar日歷控件的樣式進(jìn)行設(shè)置,由于有中文,在這里就不多講了。

  (5)保存ASP.NET VB動(dòng)態(tài)頁為dkCalendar.aspx。在IE中瀏覽,如圖10-4所示。

圖10-3? 【標(biāo)簽編輯器—Calendar】對(duì)話框

??????????? 圖10-4? dkCalendar.aspx在IE中的瀏覽

  在圖10-1-4中,可以看到星期的顯示太長(zhǎng)了,很難看!如果顯示為“日、一、二、三、四、五、六”,那就好了。

10.2? 修改Calendar的星期顯示

  (1)在Dreamweaver中打開dkCalendar.aspx,切換到代碼視圖,尋找如下代碼:

<%@ Page Language="VB" ContentType="text/html" ResponseEncoding="gb2312" %>

  把它改為:

<%@ Page Language="VB" Debug="true" Culture="zh-CN"%>

  (2)點(diǎn)擊ASP.NET快捷菜單下的“а:xy”按鈕,插入命名空間,如圖10-5所示。

  (3)此時(shí)新添代碼:

<%@ Import Namespace="" %>

  輸入命名空間為System.Globalization,即代碼改為:

<%@ Import Namespace="System.Globalization" %>

  (4)再添加命名空間System.Threading,結(jié)果如圖10-6所示。

圖10-5? 插入命名空間

圖10-6? 插入命名空間后代碼

  (5)在代碼:

<%@ Import Namespace="System.Treading" %>

  之后,空一行,并插入如下代碼:

<script runat="server">

  Dim dkday‘定義選擇日期所產(chǎn)生的鏈接字符串的全局變量

'改變星期顯示的函數(shù)

Private Sub Calendar1_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Calendar1.PreRender

Dim dkwek = System.Threading.Thread.CurrentThread

Dim dknew = System.Globalization.CultureInfo.CurrentCulture.Clone()

dknew.DateTimeFormat.DayNames = New String() {"日", "一", "二", "三", "四", "五", "六"}

dknew.DateTimeFormat.FirstDayOfWeek = DayOfWeek.Sunday

dkwek.CurrentCulture = dknew

End Sub

</script>

  (6)選擇日歷控件Calendar1的原代碼,切換到【標(biāo)簽】面板的【屬性】選項(xiàng)卡,展開“外觀”選項(xiàng),選擇“DayNameFormat”項(xiàng)的下拉菜單,并選擇“Full”,如圖10-7所示。

  (7)保存dkCalendar.aspx,在IE中進(jìn)行瀏覽,結(jié)果如圖10-8所示。?

  

圖10-7? 選擇“DayNameFormat”值為“Full”???????? 圖10-8? dkCalendar.aspx修改后在IE瀏覽

10.3? 添加日歷事件

  (1)在Dreamweaver中打開dkCalendar.aspx,切換到代碼視圖,選擇Calendar1的原代碼,右鍵單擊它,在彈出的快捷菜單中選擇“編輯標(biāo)簽(E)<asp:calendar>”,如圖10-9所示。

圖10-9? 選擇“編輯標(biāo)簽(E)<asp:calendar>”

  (2)在彈出【編輯標(biāo)簽—calendar】的對(duì)話框中,展開“事件”項(xiàng),選擇“OnSelectionChanged”,在“Calendar —OnSelectionChanged”事件文本區(qū)域中,輸入“Calendar1_SelectionChanged”,按“確定”按鈕,如圖10-10所示。

圖10-10? 編輯OnSelectionChanged事件

  (3)在代碼<script runat="server">標(biāo)簽中添加如圖10-11紅色圈所示的代碼。

圖10-11? 添加Calendar1_SelectionChanged事件

  (4)在標(biāo)簽<head></head>之間,插入如圖10-12紅色圈所示的代碼。

  (5)找標(biāo)簽<body>,將其改為如圖10-13紅色圈所示的代碼。

圖10-12? 插入javascript函數(shù)dkwk

圖10-13? 修改標(biāo)簽<body>

  (6)再次把Calendar1的“DayNameFormat”項(xiàng)的設(shè)為“Full”,參照10.2節(jié)中的第6步驟。

  (7)保存dkCalendar.aspx,打開index.aspx,在page_load函數(shù)中添加如下代碼:

if Request.QueryString("dkday")<>nothing then

Ztre.CommandText="SELECT * FROM ZTRE WHERE cstr(ZITIME) LIKE '%" &Request.QueryString("dkday")&"%' ORDER BY ZITIME DESC"

else

if (request.QueryString("menanw")<>nothing) or (session("menanw")<>nothing) then

Ztre.CommandText="SELECT * FROM ZTRE WHERE LMID = ? ORDER BY ZITIME DESC"

else

Ztre.CommandText="SELECT * FROM ZTRE? ORDER BY ZITIME DESC"

end if

end if

  結(jié)果如圖10-14所示。

圖10-14? 在page_load函數(shù)中添加代碼

  (8)找到記錄集Ztre的原代碼,刪除其CommanText所在的命令行,結(jié)果如圖10-15紅色圈所示。

圖10-15? 修改后記錄集Ztre的原代碼

  (9)保存index.aspx。

10.4? 添加嵌入式框架

  (1)打開模板dkblog.dwt.aspx,在ASP.NET快捷菜單中,點(diǎn)擊“更多標(biāo)簽”快捷按鈕,在彈出【標(biāo)簽選擇器】對(duì)話框中,選擇“HTML標(biāo)簽”,并選擇“iframe”項(xiàng),如圖10-16所示。

圖10-16? 插入iframe標(biāo)簽(即嵌入式框架)

  (2)單擊“插入”按鈕,在彈出【標(biāo)簽編輯器—iframe】對(duì)話框中對(duì)要插入的嵌入式框架進(jìn)行有關(guān)設(shè)置如圖10-17所示。

圖10-17? 對(duì)嵌入式框架進(jìn)行有關(guān)設(shè)置

  (3)按“確定”按鈕,返回到【標(biāo)簽編輯器—iframe】對(duì)話框,再按“關(guān)閉”按鈕。

  (4)保存模板dkblog.dwt.aspx,更新所有網(wǎng)頁。

  (5)在IE中瀏覽index.aspx,結(jié)果如圖10-18所示。

圖10-18? 在IE中瀏覽index.aspx

  提醒:其實(shí)日歷事件的實(shí)現(xiàn)是十分復(fù)雜的事件,這里只是給出一個(gè)簡(jiǎn)單的例子。這一節(jié)還有一個(gè)難點(diǎn)就是嵌入式框架對(duì)主窗口對(duì)象的控制,這里中只是舉了個(gè)用“parent.location.href”控制主窗口網(wǎng)頁的流轉(zhuǎn)。這些就留給讀者們慢慢研究了。

經(jīng)常看到許多網(wǎng)站有一個(gè)站內(nèi)搜索功能,這個(gè)是如何實(shí)現(xiàn)呢?如果是ASP,那Dreamweaver很快就能實(shí)現(xiàn)。現(xiàn)在是ASP.NET,得稍微手編一下。

11.1? SELECT高級(jí)搜索技巧

  經(jīng)過上面章節(jié)的學(xué)習(xí),對(duì)SELECT多少會(huì)點(diǎn)了解。SELECT高級(jí)搜索技巧,其實(shí)也沒有什么神秘,主要與模式匹配運(yùn)算符的運(yùn)用有關(guān)。所以這里主要講解模式匹配運(yùn)算符的運(yùn)用。

  模式匹配運(yùn)算符LIKE、NOT LIKE常用于模糊查找,它判斷列值是否與指定的字符串格式相匹配。LIKE用于查找匹配一定條件的記錄,NOT LIKE用于查找不匹配指定條件的記錄??捎糜谧址?、文本、日期等類型查詢。

  1.百分號(hào)%:可匹配任意類型和長(zhǎng)度的字符。

  例如:SELECT 學(xué)習(xí)筆記 FROM 學(xué)習(xí)筆記表 WHERE 標(biāo)題LIKE “網(wǎng)絡(luò)%”

  這個(gè)查詢是要查詢學(xué)習(xí)筆記表中標(biāo)題以“網(wǎng)絡(luò)”開始的所有學(xué)習(xí)筆記,如:網(wǎng)絡(luò)數(shù)據(jù)庫ASP一點(diǎn)通過、網(wǎng)絡(luò)與手機(jī)通訊開發(fā)研究等。

  例如:SELECT 學(xué)習(xí)筆記 FROM 學(xué)習(xí)筆記表 WHERE 標(biāo)題 LIKE “%ASP.NET%”
  這個(gè)查詢是要查詢所有標(biāo)題包含了“ASP.NET”的學(xué)習(xí)筆記。

  2.下劃線_:匹配單個(gè)任意字符,常用來限制表達(dá)式的字符長(zhǎng)度。

  例如:SELECT 學(xué)習(xí)筆記 FROM 學(xué)習(xí)筆記表 WHERE 標(biāo)題 LIKE ”V_開發(fā)精選 ”
  這個(gè)查詢主要是查詢類似于“VB開發(fā)精選”、“VC開發(fā)精選”這樣標(biāo)題的學(xué)習(xí)筆記。

  3.中括號(hào)[ ]:指定個(gè)字符、字符串或范圍,要求所匹配對(duì)象為它們的任一個(gè)。

11.2? 站內(nèi)搜索功能的實(shí)現(xiàn)

  介紹了SELECT高級(jí)搜索技巧后,將要介紹站內(nèi)搜索功能的實(shí)現(xiàn)。這里只采用了百分號(hào)%模式匹配運(yùn)算符。

  (1)打開模板dkblog.dwt.aspx,插入表單,設(shè)ID=” gofrm”,動(dòng)作為” ../dkgo.aspx”,方法為”POST”;插入文本框,設(shè)ID= “dkgotxt”;插入按鈕“搜索”,結(jié)果如圖11-1所示。
  (2)保存模板dkblog.dwt.aspx更新所有網(wǎng)頁。
  (3)新建一個(gè)空白ASP.NET VB動(dòng)態(tài)頁,并保存為dkgo.aspx。添加數(shù)據(jù)集Ztre,其設(shè)置如圖11-2所示。

圖11-1? 添加有關(guān)表單控件

圖11-2? 添加數(shù)據(jù)集Ztre

  (4)單擊“高級(jí)”按鈕,把SQL命令:

SELECT * FROM ZT ORDER BY ZITIME DESC

  改為:

SELECT * FROM ZT WHERE ZTNAME LIKE '%"+Request.Form("dkgotxt")+"%' ORDER BY ZITIME DESC

  結(jié)果如圖11-3所示。

圖11-3 對(duì)數(shù)據(jù)集Ztre進(jìn)行修改

  (5)對(duì)dkgo.aspx頁面進(jìn)行有關(guān)設(shè)計(jì),綁定有關(guān)動(dòng)態(tài)文本到頁面中,設(shè)計(jì)重要區(qū)域,結(jié)果如圖11-4所示。

圖11-3? 對(duì)dkgo.aspx的頁面設(shè)置

  有關(guān)設(shè)置細(xì)節(jié)可以參照index.aspx的有關(guān)設(shè)置。

把Doking's BLOG上傳到遠(yuǎn)程空間

  為了使Doking's BLOG程序上傳到遠(yuǎn)程空間后能正常的運(yùn)行,下面介紹幾個(gè)安裝要點(diǎn)。

  1.本教程提供的Doking's BLOG程序是以站點(diǎn)根目錄為主,由于要用到web.config配置文件、bin目錄以及aspnet_client腳本庫,這三個(gè)文件和目錄必須放在站點(diǎn)的根目錄下才能數(shù)據(jù)集、窗體驗(yàn)證程序正常運(yùn)行。

  2.本教程的源程序文件和web.config配置文件、bin目錄以及aspnet_client腳本庫都放在同一目錄中,這三個(gè)文件位置是不能動(dòng)的,如果想把Doking's BLOG頁面放在根目錄下的二級(jí)目錄中,比如這樣:

http://localhost/dkblog/

  上面地址中,dkblog目錄是放置Doking's BLOG頁面文件的,除了web.config配置文件、bin目錄以及aspnet_client腳本庫上傳到根目錄中外,其它所有文件都可以復(fù)制到dkblog目錄中。

  3.由于Dreamweaver MX把連接數(shù)據(jù)庫的字符串存放在web.config配置文件中,打開web.config配置文件,可以看到如圖12-1紅色圈所示是數(shù)據(jù)庫在本地的物理路徑。

圖12-1? web.config配置文件部分內(nèi)容

  由于上傳到遠(yuǎn)程空間,其物理路徑一般不會(huì)本地的物理路徑相同。在web.config配置文件中也不能使用諸如Server.MapPath之類的服務(wù)器變量來獲取遠(yuǎn)程空間的數(shù)據(jù)庫物理路徑。

  可以通過以下方法來獲取數(shù)據(jù)庫在遠(yuǎn)程主機(jī)的真實(shí)目錄物理路徑。假定,在上傳遠(yuǎn)程空間的域名地址如下:

http://www.pconline.com.cn/dkblog

  通過上面的虛擬地址訪問遠(yuǎn)程虛擬主機(jī)的二級(jí)目錄dkblog,數(shù)據(jù)庫文件保存在dat文件夾中,因此實(shí)際虛擬地址為:http://www.pconline.com.cn/dkblog/dat

  在Dreamweaver中新建一個(gè)空白的ASP.NET VB動(dòng)態(tài)頁,切換到代碼視圖,輸入如下代碼:

<%=server.MapPath("") %>

  保存為dkurl.aspx,在IE瀏覽,結(jié)果如圖12-2所示。

圖12-2? 測(cè)試物理路徑

  可以看到dkurl.aspx所在的物理路徑就是:D/dkblog/,那數(shù)據(jù)庫的物理路徑自然是:D:/dkblog/dat/dkblog.mdb。

  得到遠(yuǎn)程主機(jī)的物理路徑后,打開web.config配置文件,修改數(shù)據(jù)庫的物理路徑。

  提醒:到此Doking’s BLOG的程序開發(fā)已完成。該程序十分簡(jiǎn)單,但有利于初學(xué)者開發(fā)數(shù)據(jù)庫。實(shí)際應(yīng)用的BLOG程序其實(shí)十分復(fù)雜,許多技巧有待讀者去深思和研究。

?

?

總結(jié)

以上是生活随笔為你收集整理的Dreamweaver构建Blog全程实录的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 性奶老妇 视频 | 少妇高潮av久久久久久 | 麻豆视频国产精品 | 亚洲自拍偷拍欧美 | 射久久 | 麻豆免费观看视频 | 小少妇哺乳喂奶播放 | 亚洲av无码久久精品色欲 | 欧美区亚洲区 | 久久婷婷综合色 | 少妇高潮一69aⅹ | 国产美女av在线 | 日韩欧美国产精品 | 91直接进入 | 欧美日韩国产不卡 | 成品人视频ww入口 | 五月天激情视频在线观看 | 欧美日韩国产大片 | 美女的奶胸大爽爽大片 | 少女情窦初开的第4集在线观看 | 国产一区2 | 久久婷婷国产麻豆91 | 中文字幕av在线免费观看 | 成a人片亚洲日本久久 | 欧美极度另类 | 在线播放亚洲 | 久久久999 | 国产欧美一区二区三区精华液好吗 | www国产亚洲精品久久网站 | 在线一区二区三区 | www.自拍| 日本在线不卡一区 | 在线观看成人 | 国产污视频 | 亚洲s码欧洲m码国产av | www.成人在线 | 黄色资源在线观看 | 91精品日韩 | 成人在线免费看视频 | 婷婷激情久久 | 欧美另类xxxx野战 | 亚洲一区二区三区在线观看视频 | 久久国产色av免费观看 | 又黄又爽视频在线观看 | www色网站| 欧美成人三区 | 亚洲欧美日韩在线 | 亚洲av无码国产精品久久久久 | 国产女同91疯狂高潮互磨 | 综合网中文字幕 | 九九涩 | 久久网页 | 好吊妞在线观看 | 午夜av网站 | 97视频久久 | 香港一级纯黄大片 | 免费成人av | 五月天婷婷在线观看 | 午夜三级影院 | 成年人免费在线观看 | www.黄色 | xxx麻豆 | 麻豆网站| 国产一级av毛片 | 在线成人观看 | 亚洲无毛视频 | 蜜臀久久精品 | 裸体的日本在线观看 | 婷婷在线免费视频 | 亚洲yy | 国产麻豆一精品一男同 | 日本黄色播放器 | 性欧美又大又长又硬 | 深夜在线 | 欧美日韩在线观看一区二区三区 | 99亚洲视频 | 一区二区视频免费在线观看 | 男女免费视频 | 国产视频99 | 草色噜噜噜av在线观看香蕉 | 国产精品入口久久 | 精品无码久久久久久久久成人 | 在线日韩一区二区 | 亚洲女人久久久 | 美女啪啪av | 久久久99国产精品免费 | 激情自拍偷拍 | 久久久久亚洲av成人网人人软件 | 国产黄色精品网站 | wwwwww在线观看| 中文字幕 成人 | 国精产品一二三区精华液 | 中文字字幕一区二区三区四区五区 | 日本极品少妇 | 欧美亚洲色综久久精品国产 | 久久精品国产亚洲av久一一区 | 淫语视频| 精品人妻一区二区三区麻豆91 | 亚洲尤物在线 |