程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET 2.0站點導航功能之建立導航

ASP.NET 2.0站點導航功能之建立導航

編輯:關於ASP.NET

一、簡介

任何由多個頁面組成的網站都需要某種導航用戶接口。一個導航用戶接口可 能象一些該站點中的到另外一些頁面的靜態超級鏈接一樣得簡單,或者可能包含 菜單或樹形控件的使用。但是,在為該站點創建一個導航用戶接口之前,首先必 須定義站點的邏輯結構。(這個邏輯結構常常被參照為一個站點地圖。)例如,一 個象Amazon.com這樣的網站被組織成各個部分-其中包括產品欄如電子學書,計 算機書,DVD等等。其中的每個還可能含有子部分。書目按類型劃分,象CD,小 說,歷史書,浪漫書類,等等。典型地,這些邏輯結構形成一個分類層次。在下 面的屏幕快照顯示出Amazon.com的站點地圖的縮略版本。

一旦定義了站點地圖,就可以創建站點的導航用戶接口。在Amazon.com站點 ,主頁面在頁面左邊列出到各個分部分的超級鏈接。進入到一特定部分之後,在 左邊將顯示該部分的子部分信息。然而,也可以使用另外的導航用戶接口:你可 能有一個樹來顯示各個部分和子部分,或用一個菜單作頂級菜單項來列舉如書籍 ,電子產品,DVD,等等;而每個菜單項的子菜單又包含各個部分的子部分。

在ASP.NET 2.0以前,開發者典型地自己解決他們的站點導航功能.然而, ASP.NET 2.0使得定義一站點的結構並且使用普通導航用戶接口元素實現它輕松 極了。在本文中,我們將分析一下ASP.NET 2.0的站點導航特征。

二、ASP.NET 1.x時代的站點導航

ASP.NET 版本1.x確實沒有提供任何內置的站點導航支持;因此,大多數開發 者實現他們自己的站點導航功能。在創建他們自己的站點導航功能時,開發者面 臨兩個挑戰:

1. 決定怎樣把站點的結構信息串行化到一張站點地圖中

 2. 實現導航用戶接口元素

為解決第一個問題,開發者們需要決定如何建模該站點的結構。要把這些信 息放置到一個XML文件呢?還是添加一數據庫表來存儲站點的各個部分及其聯系 方式?對於支持用戶帳戶的站點,可能有只對屬於特別角色的用戶是可存取的部 分。而且,支持多種語言的站點某種程度上都需要提供針對各個站點部分的翻譯 。

在決定需要存儲什麼信息來描述站點的結構以及這些信息怎樣被串行化(數據 庫?XML文件?另外的東西?)以後,開發者還要面對第二個挑戰-怎樣向用戶顯示這 個站點的結構。一個常用的導航用戶接口元素是菜單;然而,ASP.NET 1.x中並 沒有提供內置的菜單Web控件-這意味著開發者要自己花錢購買或自己構建。

讓我們總結一下,在ASP.NET版本1.x中實現站點導航並不是多麼困難的任務 ;但是,這是必須要做的另外一個任務。而且,既然沒有站點導航的內置支持, 每個開發者可能會找到他自己的獨特方法,這提高了開發新手學習曲線的陡峭程 度-他們必須學習定制站點導航邏輯。

三、ASP.NET 2.0中的站點導航

在ASP.NET 2.0中實現站點導航輕而易舉,這歸功於構建站點導航特征。內部 地,ASP.NET提供了一組可編程API-用它可以進行站點地圖查詢。ASP.NET不需要 為指定站點地圖而提供特殊格式,盡管它確實提供了一種使用XML格式文件的缺 省選擇。關於怎樣串行化站點地圖的細節是可以被定制的,因為ASP.NET 2.0的 站點導航特征使用一種提供者模型。該提供者模型使開發者能夠定制一個特定 ASP.NET分系統的內部實現-只要它們保持向前引用的API是相同的。

簡言之,你可以使用ASP.NET 2.0的缺省的基於XML的方法來指定你的網站的 站點地圖,或僅加上一點編碼,你就能使用現有的定制方法,或其它一些方法。 (本文將討論使用缺省的技術(基於XML和站點地圖);本系統的後一篇文章將分析 怎樣定制站點導航提供者。)

除了提供一種可定制的手段來指定站點結構外,隨同ASP.NET 2.0一起發行的 還有一些導航Web控件-它們使得顯示站點地圖就象拖放一個控件到你的ASP.NET 頁面一樣容易:

1. SiteMapPath-顯示一個breadcrumb,用於顯示終端用戶處於相對於站點結 構的具體位置。例如,在訪問Amazon.com站點的Novels部分時,一個breadcrumb 顯示可能是這個樣子:Home>Books>Novels。

2. TreeView-用一個可展開的樹顯示站點的結構。

3. Menu-使用一菜單顯示站點的結構。

4. 在顯示站點導航時,TreeView控件和Menu控件都使用SiteMapDataSource 控件來讀取站點地圖的內容。

在底層實現上,這些控件調用了ASP.NET 2.0的站點導航API。既然該站點導 航部分是用提供者模型來實現的,那麼,該控件在怎樣串行化站點地圖的內部實 現原理是易於理解的。也就是說,不管你是否使用缺省的站點地圖或滾動你自己 定制的站點地圖邏輯,導航控件都可以用於同你的站點地圖一道工作。(假定, 如果你想使用一個定制的站點地圖,那麼你確實需要創建一個類-它提供所想要 的方法和屬性以與站點地圖一起工作;更細致的討論見下一篇文章)。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved