Dreamweaver構建Blog全程實錄(5):分欄及回複的實現

來源:互聯網
上載者:User
dreamweaver

  在第四章中完成的的首頁其實很不完善,一是筆記菜單分欄沒有連結,不能點擊;二是點擊筆記題標,不能連結到回複頁;三是點擊作者,不能連結作者的資訊。這一章中將會完善這些功能。

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。

  



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。