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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Dreamweaver构建Blog全程实录

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

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

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

?

Blog實例效果圖

了解Doking’s BLOG功能和開發目的之后,接下來就是構建好開發環境。

2.1? ASP.NET運行環境的構建

  在開始開發Doking’s BLOG前,應該先構造好開發環境。下面介紹的是在Windows 2000/XP操作系統中的構建方法。

  2.1.1 安裝IIS服務器

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

圖2-1? windows組件向導對話框

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

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

圖2-2? Internet信息服務對話框

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

圖2-3? 站點屬性對話框

  (3)現在,電腦終于可以在像網絡服務一樣提供WWW服務了,默認網址:localhost或電腦的IP地址(如:127.0.0.1)。

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

  2.1.3 安裝.NET框架

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

  .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瀏覽器,在地址欄上打上“localhost/text.aspx”,假定text.aspx這個文檔現在不存在,那么IE瀏覽器上一定會返回錯誤信息,如果出現如圖2-4所示的錯誤信息,說明我ASP.NET的運行環境基本構建完畢。

圖2-4? 找不著文件錯誤信息

  2.1.4 在Windows 2003操作系統中構建ASP.NET運行環境

  上面介紹的是在Windows 2000/XP操作系統中構建ASP.NET運行環境的步驟和方法。在Windows 2003操作系統中構建ASP.NET運行環境主要有以下兩種方法:

  1.使用【配置您的服務器向導】安裝IIS 6.0和ASP.NET

  (1)從【開始】菜單,單擊“管理您的服務器”。
  (2)在“管理您的服務器角色”下,單擊【添加或刪除角色】。
  (3)閱讀“配置您的服務器向導”中的預備步驟,然后單擊“下一步”。
  (4)在“服務器角色”下,單擊“應用程序服務器(IIS,ASP.NET)”,然后單擊“下一步”。
  (5)在【應用程序服務器選項】對話框中,選中“啟用ASP.NET”復選框,單擊“下一步”,然后再單擊“下一步”。
  (6)閱讀概要信息,然后單擊“下一步”。
  (7)單擊“完成”。

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

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

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

  (1)從【開始】菜單中,單擊“運行”。
  (2)在【運行】對話框中的【打開】框中,鍵入inetmgr,然后單擊“確定”。
  (3)在IIS管理器中,展開本地計算機,然后單擊“Web服務擴展”。
  (4)在右側窗口中,右鍵單擊“ASP.NET”然后單擊“允許”。ASP.NET的狀態變為“允許”。

2.2? 建立Doking’s BLOG 站點

  在構建好ASP.NET運行環境之后,可以開始著手開發Doking’s BLOG網站了。首先,必須在Dreamweaver MX中建立Doking’s BLOG站點。

  2.2.1 建立Doking’s BLOG站點

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

圖2-5? 管理站點對話框

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

圖2-6? 定義站名字

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

圖2-7? 確定服務器技術

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

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

圖2-8? 指定網站的目錄位置

圖2-9? 測試對話框

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

  2.2.2 部署Doking’s BLOG站點

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

  (2)在【文件】菜單中,選擇【新建】,在【新建對話框】中,選擇類別為“動態頁”,選擇動態頁為“ASP.NET VB”,按“創建”按鈕創建第一個動態網頁。切換到【應用程序】面板,選擇【綁定】選項卡,如圖2-11所示。

  

圖2-10? 站點的布局???????????????? 圖2-11? 綁定對話框

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

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

圖2-12? 部署設置對話框

?

圖2-13? 部署文件對話框

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

?

3.1 數據庫的規范化

  數據庫的規范化主要體現在表與表之間的關系、數據結構及存儲兩大方面。

  3.1.1 數據表之間的關系

  許多初學者常常認為,建立一個表儲存所有數據就可以了。如果這么認為,那經常會造成數據冗余的。圖3-1-1是一個數據表,可以看到畫在紅色圈中的數據是冗余的。

圖3-1-1? 一個數據表

  冗余數據會影響數據庫的有效運行,甚至可以把數據庫推毀。為減少冗余數據,得把數據分開儲存成幾個表,并建立表與表之間的連接關系。表與表之間的連接關系,主要有一對多、多對多、一對一三種方式。

  一對多關系,它是數據庫中最普通的關系類型。這種關系雙被稱為是父表與子表關系或主表與分表關系。圖3-1-2就體現了一種父表與子表關系。在這里,專題表與回復表就是一對多的關系。專題表是父表,回復表是子表,專題表中的一行在回復表可有零行、一行或許多與之對應,而回復表中的每一行都與專題表中的相應的專題對應。

圖3-1-2?? 一對多關系

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

圖3-1-3? 多對多關系

  一對一的關系,就是將一個表中的行與另一表中的行連接來。這種關系非常少見,因為如是有的話,還不如把這兩個表合為一張表更為合理。

  3.1.2 數據結構與儲存

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

  設計數據表時,分配字段大小要慎重,在夠用的情況下,能省就省。如果字段用于儲存整數,請用整數或長整數,不用單精度或雙精度,如果夠用的話,最好建立100字符的文本類型字段,而不要采用備注字段。為什么?如果你不怕高昂的服務器費用、不怕網絡數據庫運行緩慢,你大可不必理會這些,但它最嚴重會導致數據庫崩潰。

3.2? Doking’s BLOG數據庫的設計

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

  LM表即欄目表,用于網站導航條建立和學習筆記的歸類,欄目內容是由網站的管理員設計的,其字段設計如圖3-2-1所示

圖3-2-1? LM表的字段設計圖

  ZT表即學習筆記表,是用于儲存用戶發表學習心得,其實字段設計如圖3-2-2所示:

圖3-2-2? ZT表的字段設計圖

  HH表即回復表,儲存著用戶對已發表的學習筆記的回復,其字段如圖3-2-3所示:

圖3-2-3? HF表的字段設計圖

  YH表即用戶表,儲存著用戶的注冊信息,方便用戶登錄發表學習筆記和學習筆記的回復。其字段設計如圖3-2-4所示:

圖3-2-4? YH表的字段設計圖

  GLY表即管理員表,用于管理員登錄,管理網站,其字段設計如圖圖3-2-5

圖3-2-5? GLY表的字段設計圖

?3.3 創建Doking’s BLOG數據庫連接源
?

  (1)啟動Dreamweaver MX 2004,在【文件】菜單中,選擇【新建】,在【新建對話框】中,選擇類別為“動態頁”,選擇動態頁為“ASP.NET VB”,按“創建”按鈕,創建一個動態網頁。

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

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

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

圖3-3-2? 設置連接名稱

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

圖3-3-3 選擇數據庫引擎

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

圖3-3-4 選擇連接數據庫

  (6)選擇【高級】選項卡,在設置訪問權限中,選擇“ReadWrite”,如圖3-3-5所示

圖3-3-5? 設置訪問權限

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

圖3-3-6? 數據庫測試對話框

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

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

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

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

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

 ?、俳?.3節中的步驟中第(3)步驟。執行【開始】|【所有程序】|【附件】|【記事本】系統菜單命令。

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

圖3-4-1? 保存“數據庫連接.udl”

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

 ?、軋绦小鹃_始】|【所有程序】|【附件】|【記事本】系統菜單命令。在記事本程序主窗口中,直接執行執行【文件】|【打開】菜單命令,選擇“數據庫連接”為打開文件。

  ⑤在記事本程序主窗口中,選擇第三行所有字符進行復制,如圖3-4-2所示。切換到Dremweaver程序中,將其粘貼到第(3)步驟的在彈出【OLE DB連接】對話框中的【連接字符串】文本區域中,這樣就完成在Dreamweaver中的數據庫鏈接。

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

?

4.1? 基本頁面設計

  這里,不是要談網頁藝術創造的知識,而是講解在Dreamweaver MX2004中構建網站內頁的思路和方法。

  4.1.1 網站設計思路

  每個網頁開始前,一般要在Firworks或在Photoshop等圖像設計軟件中設計好基本頁面設計,圖4-1-1就是Photoshop中設計好的基本頁面設計圖。

圖4-1-1? Doking’s BLOG基本頁面設計圖

  在圖4-1-1中序號①畫上紅色方圈部分的是網頁的左邊欄目,目前是空白的,它的欄目在以后章節中會一一添加上去的,序號②畫上紅色方圈部分的是網站的導航條,它是由第三章建立的dkblog.mdb數據庫中的LM表動態生成的?;舅悸芬亚宄?#xff0c;開始構建立網站的模板。

  4.1.2 構建網站模板

  設計思路:構建網站模板,統一網站網頁設計。網站的欄目菜單內容由于數據表動態LM生成,也方便網站欄目菜單內容的修改。

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

圖4-1-2? 新建模板對話框

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

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

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

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

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

  (7)建立網站的導航條。

  ?①啟動Access2003,打開dkblog.mdb數據庫,在LM表的LM字段中按順序輸入平面設計、3D設計、網頁設計、網絡編程等4個記錄,如圖4-1-3 所示。

圖4-1-3? LM表數據錄入

 ?、诜祷谼reamweaver,切換到【服務器行為】面板,單擊“+”按鈕,在下拉菜單中選擇“數據集”,如圖4-1-4所示。

圖4-1-4? 添加數據集

  ③在彈出【數據集】對話框中,輸入數據集名稱為“menuda”,在連接下拉菜單中選擇“dkconn”,在表格的下拉菜單中選擇LM表,選擇列為“全部”選項,在排序下拉菜單中選擇字段“LMID”,設排序為升序,結果如圖4-1-5所示:

圖4-1-5 數據集對話框

  ④單擊“測試”按鈕,出現如圖4-1-6所示的對話框,說明數據集創建成功,單擊“確定”按鈕完成。

圖4-1-6 數據集測試對話框

 ?、萸袚Q到【綁定】選項卡,展開數據集(menuda)的字段,如圖4-1-7所示:

圖4-1-7? 綁定選項卡

 ?、尥侠璍M字段至表格bodyT的第一行,如圖4-1-8所示:

圖4-1-8拖拉LM字段

 ?、叻砰_鼠標,這時第一行會增加一段帶陰影的字符:{menuda.LM},在其前輸入“主頁 | ”,其后輸入符號“ | 聯系我們”,結果如圖4-1-9所示:

圖4-1-9? 綁定數據到bodyT表中

 ?、噙x擇帶陰影字符{menuda.LM}和后面的字符“ | ”,選擇【插入】菜單→【應用程序對象】→【重復區域】,在彈出【重復區域】的對話框中選擇數據集為“menuda”,把顯示記錄選為“所有記錄”,如圖4-1-10所示,單擊“確定”按鈕完成網站導航菜單。

圖4-1-10 重復區域對話框

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

圖4-1-11? 新建可編輯區域

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

  4.1.3 首頁的頁面設計

  設計思路:完成網站的模板建設工作后,得以它來構建網站和更新網站。

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

圖4-1-12? 選擇模板

  (2)把鼠標移到“mainbody”可編輯區域中,插入表格,設其ID為“ztre”,其實它設計成如圖4-1-13所示,這是每一個學習筆記將要顯示的內容。

圖4-1-13? 每一個學習筆記將要顯示的內容

4.2 插入數據集

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

  4.2.1 建立數據表連接查詢

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

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

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

圖4-2-2? 數據表連接視圖

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

圖4-2-3? 查詢字段設計圖

  (4)保存這個查詢為ZTRE,完成在Access中數據表連接查詢。

  4.2.2 插入數據集

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

圖4-2-4? Ztre數據集的設置

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

圖4-2-5? 綁定數據到ztre表中

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

圖4-2-6 設動態文本格式

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

圖4-2-7? 定義重復區域

  這樣就完成了主頁插入數據集和數據綁定工作。

4.3 分頁顯示

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

圖4-3-1? 數據集分頁菜單

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

圖4-3-2? 移至第一頁對話框

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

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

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

圖4-3-3 首頁瀏覽圖

5.1? 筆記菜單分欄實現

  設計思路:修改模板bkblog.dwt.aspx中菜單分欄的超級鏈接,進而更新所有網頁;打開首頁時,瀏覽按時間降序方式顯示所學習筆記的內容,點擊菜單分欄,又能根據分欄進行按時間降序方式分類顯示學習筆記內容。

  5.1.1 建立模板菜單

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

圖5-1-1? 鼠標移至到鏈接屬性

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

圖5-1-2 插入動態屬性(a.href)

  (3)切換到【服務器行為】面板,可以看已經增加一個服務器行為:動態屬性(a.href),如圖5-1-3所示:

圖5-1-3 服務器行為面板

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

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

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

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

  5.1.2? 在首頁中實現分欄顯示

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

圖5-1-5? 數據集高級對話框

  (2)單擊“簡單”按鈕,在【篩選】下拉菜單中選擇篩選字段為LMID,選“URL參數”作為參數傳遞方式,輸入參數變量為menanw,按“確定”鍵,結果如圖5-1-6所示:

圖5-1-6? 修改Ztre數據集為篩選

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

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

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

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

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

圖5-1-8? 給index.aspx插入頁面載入默認函數

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

圖5-1-9? 數據集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)進行IE瀏覽,結果第四章的圖4-3-3所示。完成既定的設計思路。

  

5.2? 回復頁面的實現

  設計思路:能夠實現點擊筆記的標題,就能夠夠鏈接出一個頁面,包括這筆記和相應所有回復。從上一節,可以這已不難了,只在筆記標題的超級鏈接上進行這個筆記的代碼參數傳遞就可以實現了。

  5.2.1? 基本頁面設計

  (1)新建由模板bkblog.dwt.aspx生成的ASP.NET VB 動態頁hf.aspx,在mainbody可編輯區域中插入表格ztre,并進行有關設計,結果如圖5-2-1所示:

圖5-2-1 表格ztre設計圖

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

圖5-2-2? 查詢HFRE的有關設計

  (3)按4.2.2數據集那節中(1)-(3)步驟,添加數據集Ztre,拖拉字段到相應位置,并進行動態文本(Ztre.ZYTEXT)的格式設置,結果如圖5-2-3所示:

圖5-2-3? 綁定數據到表格ztre

  (4)修改數據集Ztre為篩選,篩選字段為ZTID,選“URL參數”作為參數傳遞方式,輸入參數變量為ztanw。

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

圖5-2-4? 數據集Hfre的設計

  (6)拖拉數據集Hfre字段到表格ztre的相應位置,設動態文本(Htre.HFTEXT)的格式設置“編碼—HTML編碼格式”,將表格ztre的第5、6、7行,定義為重復區域,定義數據分頁到表格ztre,結果如圖5-2-5所示:

圖5-2-5? 綁定數據集Htre到表格ztre中

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

圖5-2-6 在代碼中添加動態超級鏈接

  (8)保存hf.aspx和index.asps,在Access中給相應HF表、YH表隨便輸入幾個記錄,進行IE瀏覽器中瀏覽index.asps,點出有回復的學習筆記主題,如圖5-2-7所示:

圖5-2-7? 回復頁的顯示

  (9)再點擊數據集導航的任何一個超級鏈接,結果如圖5-2-8所示:

圖5-2-8? 點擊數據集導航后頁面結果

  啊!全沒了!這就是ASP.NET網頁間數據傳遞的問題。得像5.1節中那進行修改。

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

圖5-2-9? 給hf.aspx插入頁面載入默認函數

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

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

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

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

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

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

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

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

  (13)保存hf.aspx。

  

6.1? 基本頁面設計

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

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

圖6-1-1? 模板中用戶登錄設計

  (2)將作者相應的文本框命名為Logname;將密碼相應的文本框命名為Logpass,類型改為密碼;“注冊”按鈕的動作改為“無”;把“登錄”按鈕的動作改為“提交表單”。

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

圖6-1-2? 添加轉到URL的行為

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

  6.1.2? 注冊頁面的設計

  (1)新建由模板bkblog.dwt.aspx生成的ASP.NET VB 動態頁yhinlog.aspx,在mainbody可編輯區域中插入表單Yhinfrm,再插入表格yhinlog,并進行有關設計,結果如圖6-1-3所示:

圖6-1-3? 表格yhinlog的設計

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

圖6-1-4? 修改文本框標簽

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

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

  6.1.3? 完成注冊頁面的設計

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

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

  (2)返回設計視圖,繼續輸入文字“Donking's BLOG!”,并、對表格logok,進行有關設計,結果如圖6-1-6所示:

圖6-1-6 表格logok的設計

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

6.2驗證用戶注冊

  為了防止用戶輸入錯誤的注冊信息,要對用戶注冊信息進行規范和驗證。

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

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

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

圖6-2-2? 標簽選擇器

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

圖6-2-3? RequiredFieldValidator標簽編輯器

  (4)打開標簽選擇器,插入ASP.NET驗證服務器控件→CompareValidator控件,為文本框YHPASS添加與REPASS文本框對比驗證控件,填有關信息如圖6-2-4所示:

圖6-2-4? CompareValidato標簽編輯器

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

圖6-2-5? Range validator標簽編輯器

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

圖6-2-6 Regular expression validator標簽編輯器

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

圖6-2-7? Regular expression validator 標簽編輯器

  (8)應該再一個驗證控件防止用戶注冊的用戶名重復。

 ?、偬砑訑祿痽hinlog,設為篩選,篩選字段為YHNAME,參數變量為來之表單變量YHNAME,其設置如圖6-2-8所示:

圖6-2-8? 插入數據集yhinlog

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

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

圖6-2-9? Custom Validator標簽編輯器

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

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

6.3? 添加“插入記錄”服務器行為

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

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

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

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

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

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

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

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

  把它改為:

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

  也就是去除ResponseEncoding="gb2312"。其他網頁也按此法進行修改,防止中文提交信息出錯。

  

7.1? 用戶登錄服務器行為

  用戶登錄,經過驗證正確,頁面換了個用戶登錄后的面貌。

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

  (2)插入關于YH表查詢的數據集yhlog,以驗證用戶登錄的正確。

  ①將數據集yhlog設為篩選,如圖7-2所示。

圖7-1? 表格yhtab的設計圖???

?圖7-2? 插入數據集yhlog

 ?、邳c擊“高級”按鈕,切換到高級數據集模式,如圖7-3所示。

圖7-3? 插入數據集yhlog

  ③點擊參數“+”,彈出“編輯參數”對話框,填寫名稱為“@Logpas”,類型選擇“WChar”,如圖7-4所示。

圖7-4? 添加參加Logpass

  ④點擊“建立”按鈕,彈出“生成值”對話框,名稱為“Logpass”,源選擇“表單變量”,如圖7-5所示。

圖7-5? 生成值對話框

 ?、輪螕簟按_定”保存設置,一直回到數據集yhlog對話框。修改SQL語句,修改結果如圖7-6所示。

圖7-6? 對數據集yhlog進行修改

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

圖7-7? 定義函數uselog

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

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

  把上面代碼改為:

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

  (5)插入關于ZT表查詢的數據集bjre,返回該用戶發表的學習筆記總數。

 ?、賹祿O為“篩選”,篩選字段為:YHID,篩選方式為:輸入值,如圖7-8所示。

圖7-8? 插入數據集bjre

  ②點擊“高級”,切換到高級數據集模式,將SQL修改成如圖7-9所示。

圖7-9? 修改數據集bjre

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

圖7-10? 編輯數據集bire的參數

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

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

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

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

圖7-11? 插入綁定數據

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

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

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

  結果如圖7-12所示。

圖7-12? 表格yhtab的修改

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

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

圖7-13? 移至光標所在位置

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

圖7-14? 在標簽<form>之前插入代碼

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

圖7-15? 標簽</form>之后插入代碼

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

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

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

圖7-16? 用戶登錄前

圖7-17? 用戶登錄后

  提醒:為了方便讀者學習,教程分成模塊來寫。實際上一開始就得在模板中所有功能做好,特別是在模板必須插入的數據集及頁頭載入程序,因為這些在后期修改后不能更新網頁。

7.2? 用戶發表回復信息

  用戶登錄后,就可以對?各學習筆記發表回復信息。

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

圖7-18? 表格Hftab的有關設計

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

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

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

  改為:

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

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

圖7-19? 選擇< input # plbottom>快捷編輯標簽

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

disabled=”true”

  改為:

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

  結果如圖7-20所示。

圖7-20? 快捷< input # plbottom>編輯標簽

  即設按鈕plbottom,當用戶登錄前為禁用,用戶登錄后為可用。

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

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

  在圖7-21中,可以看到字段HFID、HFTIME、YHID、ZTID沒有獲取值。字段HFID是自動編號,數據庫會自動給記錄添加數值;字段HFTIME在Access中已設默認值為date(),所以數據庫會自動給新增加的記錄添加當天日期。那字段YHID就是登錄用戶的ID碼,字段ZTID就是要發表的筆記ID。所以要把登錄用戶的ID碼添加到字段YHID中,要發表的筆記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)按次序添加參數:

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

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

  結果如圖7-23所示。

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

  (8)在發布回復信息前,得對回復標題和回復的內容進行驗證,防止發布空標題或空內容的回復信息。參照6.2節中插入RequiredFieldValidato驗證控件方法,分別給文本框HFNAME、文本區域控件HFTEXT添加RequiredFieldValidato驗證控件。

  (9)用戶發布回復信息時,還得給學習筆記的回復總數自動增加1,也就是給ZT表下的HFZS字段自動增加1。

 ?、僭凇痉掌餍袨椤棵姘逯?#xff0c;插入“更新記錄”服務器行為,設更新表格為ZT,暫時設提交值,來自表單yhplfrm,暫時設:‘HFZS’從‘HFTEXT’獲取值(作為‘Integer’);暫時設:‘ZTID’將‘HFTEXT’ 用作‘Integer’來選擇記錄

 ?、跒槭裁慈菚簳r的?那是為了先讓Dreamweaver自動生成一些代碼,后方便修改。先切換代碼視圖,找到更新記錄(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? 用戶發表學習筆記

  用戶登錄后,除了可以發表回復信息外,還可以發表新的學習筆記。

  (1)新建由模板bkblog.dwt.aspx生成動態網頁ztfb.aspx,在mainbody可編輯區域中插入一列五行的表格ztfb。

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

圖7-24? 添加數據集zthb

  (3)拖拉數據集下的有關字段到表格ztfb中,方法參照第4.2節的方法。

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

圖7-25? 表格ztfb的設計

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

  (3)設表格zthb的第一、二、三行為數據集zthb的重復區域,再在表格的第四行中插入數據集導航。

  (4)插入列表/菜單LMID,點擊其屬性窗口中的列表值,在彈出的列表值對話框中,輸入項目標簽為:設計項;值為:1,按“確定”鍵,如圖7-26所示。

圖7-26? LMID列表值對話框

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

圖7-27? 拖拉數據集menuda下的字段LMID

  (6)拖拉數據集menuda下的字段LM,替換“設計項”,結果如圖7-28所示。

圖7-28? 拖拉數據集menuda下的字段LM

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

圖7-29? 定義列表中的數據集menuda重復區域

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

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

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

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

  改為:

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

  (10)添加參數:

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

  結果如圖7-31所示。

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

7.4? 修改用戶資料

  修改用戶資料頁面設計與用戶注冊頁面設計基本相同。

  (1)打開注冊頁面yhlogok.aspx,把它另存為yhsg.aspx,并進行適當的修改,結果如圖7-32所示。

圖7-32? yhsg.aspx頁面設計

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

圖7-33? 插入數據集yhsg

  (3)綁定數據集yhsg下的有關字段到相應的文本框中,結果如圖7-34所示。

圖7-34? 綁定動態文本到有關文本框中

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

圖7-35? 添加更記錄服務器行為

  (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? 管理員登錄的實現

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

圖8-1? gllogin的頁面設計

  (2)設管理員相應的文本框的ID為GLY,密碼對應的文本框的ID為GLPASS。

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

圖8-2? 添加數據集gly

  (4)點擊“高級”按鈕,添加參數@GLPASS,如圖8-3所示。

圖8-3? 添加參數@GLPASS

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

圖8-4? 數據集gly高級對話框

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

圖8-5? 在<html>標簽之前插入代碼

  (7)保存gllogin.aspx。

8.2? 學習筆記管理

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

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

圖8-6? 插入asp標簽Label1

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

圖8-7? 設asp標簽Label1為不可見

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

圖8-8? 在表格ztre的設置

  (4)切換到【標簽】面板下的【屬性】選項卡,展開“常規”項,在“value”項中單擊動態數據,如圖8-9所示。

圖8-9? ZTID標簽屬性面板

  (5)在彈出的“動態數據”對話框中,選擇數據集Ztre下的字段ZTID,按“確定”鍵,如圖8-10所示。

圖8-10? 動態數據窗口

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

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

  如圖8-11深藍色所示。

圖8-11? 快速編輯<input#ZIID>標簽

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

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

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

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

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

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

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

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

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

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

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

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

8.3? 筆記回復管理

  筆記回復管理與學習筆記管理的道理和方法是一致的。

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

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

  (2)選擇復選框HFID,切換到【標簽】面板下的【屬性】選項卡,展開“常規”項,在“value”項中單擊動態數據,在彈出的“動態數據”對話框中,選擇數據集Hfre下的字段HFID,按“確定”鍵,如圖8-18所示。

圖8-18? 動態數據窗口

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

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

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

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

圖8-20? 移動表單yhplfrm的標簽

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

圖8-21? 在表格Hftab標簽之前插代碼

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

圖8-22? 在表格Hftab標簽之后插代碼

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

9.1? 基本頁面設計

  打開模板dkblog.dwt.aspx,在左邊導航上添加文字設計如圖9-1所示。

圖9-1? 模板dkblog.dwt.aspx左邊導航文字設計

9.2? 在線人數統計

  在線人數統計的實現得依靠global.asax文件。global.asax文件包括了處理應用程序層次事件的程序代碼,就像在經典ASP中的Global.asa文件。在Global.asax中的<script>標簽包含了面對應用程序層次的事件處理器。第一組的事件處理器負責處理應用程序的開始以及停止事件。一個開始事件會在任何頁面第一次被請求的時候被喚醒。而應用程序終止事件則會在應用程序關閉的時候被喚醒。
建立global.asax文件,一般得手編。現在可以Visual Web Developer 2005這個軟件中快速建立global.asax文件。

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

  Visual Web Developer 2005 下載地址:

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

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

圖9-2? Visual Web Developer 2005運行歡迎界面

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

圖9-3? 新建立Global Application Class

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

圖9-4? 一個新建立的Glbal文件

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

圖9-5? 修改Glbal文件

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

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

<td class="BTD">本站在線人數統計:人</td>

  并改為:

<td class="BTD">本站在線人數統計:<%=Application("dk_uses")%> 人 </td>

  (7)保存模板。

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

9.3? 站點筆記和回復的統計

  回想在“7.1? 用戶登錄服務器行為”中,曾為用戶統計其發表筆記與回復,站點筆記和回復的統計與其類同。

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

圖9-6? 數據集zdbj的設置圖

圖9-7? 數據集zdhf的設置圖

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

圖9-8? 綁定數據集zbbj、zbhf

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

既然Doking’s BLOG是學習筆記,那么按日歷可以查出所有筆記和筆記回復。

  難點分析:是不是要在模板中直接添加Calendar日歷控件?不!那是不行的!由于Calendar日歷控件是服務器控件,要在含有runat="server"表單該服務器控件,但一頁面中只能有一個含有runat="server"表單,不然有時會出現如圖10-1所示的錯誤顯示。

圖10-1? 頁面只能有一個含有runat="server"表單的錯誤

  那怎么辦?這里是采取嵌入式框架進行轉移。

10.1? 添加Calendar日歷控件

  (1)新建一個空白ASP.NET VB動態頁。

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

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

圖10-2? 插入“asp Calendar”標簽

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

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

圖10-3? 【標簽編輯器—Calendar】對話框

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

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

10.2? 修改Calendar的星期顯示

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

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

  把它改為:

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

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

  (3)此時新添代碼:

<%@ Import Namespace="" %>

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

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

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

圖10-5? 插入命名空間

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

  (5)在代碼:

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

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

<script runat="server">

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

'改變星期顯示的函數

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的原代碼,切換到【標簽】面板的【屬性】選項卡,展開“外觀”選項,選擇“DayNameFormat”項的下拉菜單,并選擇“Full”,如圖10-7所示。

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

  

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

10.3? 添加日歷事件

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

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

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

圖10-10? 編輯OnSelectionChanged事件

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

圖10-11? 添加Calendar1_SelectionChanged事件

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

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

圖10-12? 插入javascript函數dkwk

圖10-13? 修改標簽<body>

  (6)再次把Calendar1的“DayNameFormat”項的設為“Full”,參照10.2節中的第6步驟。

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

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

  結果如圖10-14所示。

圖10-14? 在page_load函數中添加代碼

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

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

  (9)保存index.aspx。

10.4? 添加嵌入式框架

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

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

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

圖10-17? 對嵌入式框架進行有關設置

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

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

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

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

  提醒:其實日歷事件的實現是十分復雜的事件,這里只是給出一個簡單的例子。這一節還有一個難點就是嵌入式框架對主窗口對象的控制,這里中只是舉了個用“parent.location.href”控制主窗口網頁的流轉。這些就留給讀者們慢慢研究了。

經??吹皆S多網站有一個站內搜索功能,這個是如何實現呢?如果是ASP,那Dreamweaver很快就能實現?,F在是ASP.NET,得稍微手編一下。

11.1? SELECT高級搜索技巧

  經過上面章節的學習,對SELECT多少會點了解。SELECT高級搜索技巧,其實也沒有什么神秘,主要與模式匹配運算符的運用有關。所以這里主要講解模式匹配運算符的運用。

  模式匹配運算符LIKE、NOT LIKE常用于模糊查找,它判斷列值是否與指定的字符串格式相匹配。LIKE用于查找匹配一定條件的記錄,NOT LIKE用于查找不匹配指定條件的記錄。可用于字符串、文本、日期等類型查詢。

  1.百分號%:可匹配任意類型和長度的字符。

  例如:SELECT 學習筆記 FROM 學習筆記表 WHERE 標題LIKE “網絡%”

  這個查詢是要查詢學習筆記表中標題以“網絡”開始的所有學習筆記,如:網絡數據庫ASP一點通過、網絡與手機通訊開發研究等。

  例如:SELECT 學習筆記 FROM 學習筆記表 WHERE 標題 LIKE “%ASP.NET%”
  這個查詢是要查詢所有標題包含了“ASP.NET”的學習筆記。

  2.下劃線_:匹配單個任意字符,常用來限制表達式的字符長度。

  例如:SELECT 學習筆記 FROM 學習筆記表 WHERE 標題 LIKE ”V_開發精選 ”
  這個查詢主要是查詢類似于“VB開發精選”、“VC開發精選”這樣標題的學習筆記。

  3.中括號[ ]:指定個字符、字符串或范圍,要求所匹配對象為它們的任一個。

11.2? 站內搜索功能的實現

  介紹了SELECT高級搜索技巧后,將要介紹站內搜索功能的實現。這里只采用了百分號%模式匹配運算符。

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

圖11-1? 添加有關表單控件

圖11-2? 添加數據集Ztre

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

SELECT * FROM ZT ORDER BY ZITIME DESC

  改為:

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

  結果如圖11-3所示。

圖11-3 對數據集Ztre進行修改

  (5)對dkgo.aspx頁面進行有關設計,綁定有關動態文本到頁面中,設計重要區域,結果如圖11-4所示。

圖11-3? 對dkgo.aspx的頁面設置

  有關設置細節可以參照index.aspx的有關設置。

把Doking's BLOG上傳到遠程空間

  為了使Doking's BLOG程序上傳到遠程空間后能正常的運行,下面介紹幾個安裝要點。

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

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

http://localhost/dkblog/

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

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

圖12-1? web.config配置文件部分內容

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

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

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

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

  在Dreamweaver中新建一個空白的ASP.NET VB動態頁,切換到代碼視圖,輸入如下代碼:

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

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

圖12-2? 測試物理路徑

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

  得到遠程主機的物理路徑后,打開web.config配置文件,修改數據庫的物理路徑。

  提醒:到此Doking’s BLOG的程序開發已完成。該程序十分簡單,但有利于初學者開發數據庫。實際應用的BLOG程序其實十分復雜,許多技巧有待讀者去深思和研究。

?

?

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。