# ASP.NET Web Forms - 導航
ASP.NET 帶有內建的導航控件。
## 網站導航
維護大型網站的菜單是困難而且費時的。
在 ASP.NET 中,菜單可存儲在文件中,這樣易于維護。文件通常名為 **web.sitemap**,并且被存放在網站的根目錄下。
此外,ASP.NET 有三個心的導航控件:
* Dynamic menus
* TreeViews
* Site Map Path
## Sitemap 文件
在本教程中,使用下面的 sitemap 文件:
```
<?xml version="1.0" encoding="ISO-8859-1" ?>
<siteMap>
<siteMapNode title="Home" url="/aspnet/w3home.aspx">
<siteMapNode title="Services" url="/aspnet/w3services.aspx">
<siteMapNode title="Training" url="/aspnet/w3training.aspx"/>
<siteMapNode title="Support" url="/aspnet/w3support.aspx"/>
</siteMapNode>
</siteMapNode>
</siteMap>
```
創建 sitemap 文件的規則:
* XML 文件必須包含 圍繞內容的 <siteMap> 標簽
* <siteMap> 標簽只能有一個 <siteMapNode> 子節點( "home" 頁面)
* 每個 <siteMapNode> 可以有多個子節點(網頁)
* 每個 <siteMapNode> 帶有定義頁面標題和 URL 的屬性
> 
> **注釋:**sitemap 文件必須位于站點根目錄下,URL 屬性必須相對于該根目錄。
## 動態菜單
<asp:Menu> 控件可顯示標準的站點導航菜單。
**代碼實例:**
```
<asp:SiteMapDataSource id="nav1" runat="server" />
<form runat="server">
<asp:Menu runat="server" DataSourceId="nav1" />
</form>
```
上面實例中的 **<asp:Menu>** 控件是一個供服務器創建導航菜單的占位符。
控件的數據源由 **DataSourceId** 屬性定義。 **id="nav1"** 把數據源連接到 **<asp:SiteMapDataSource>** 控件。
**<asp:SiteMapDataSource>** 控件自動連接默認的 sitemap 文件(**web.sitemap**)。
## TreeView
<asp:TreeView> 控件可顯示多級導航菜單。
這種菜單看上去像一棵帶有枝葉的樹,可通過 + 或 - 符號來打開或關閉。
**代碼實例:**
```
<asp:SiteMapDataSource id="nav1" runat="server" />
<form runat="server">
<asp:TreeView runat="server" DataSourceId="nav1" />
</form>
```
上面實例中的 **<asp:TreeView>** 控件是一個供服務器創建導航菜單的占位符。
控件的數據源由 **DataSourceId** 屬性定義。 **id="nav1"** 把數據源連接到 **<asp:SiteMapDataSource>** 控件。
**<asp:SiteMapDataSource>** 控件自動連接默認的 sitemap 文件(**web.sitemap**)。
## SiteMapPath
SiteMapPath 控件可顯示指向當前頁面的指針(導航路徑)。該路徑顯示為指向上級頁面的可點擊鏈接。
與 TreeView 和 Menu 控件不同,SiteMapPath 控件**不使用** SiteMapDataSource。SiteMapPath 控件默認使用 web.sitemap 文件。
> 
> 提示:如果 SiteMapPath 沒有正確顯示,很可能是由于 web.sitemap 文件中存在 URL 錯誤(打印錯誤)。
**代碼實例:**
```
<form runat="server">
<asp:SiteMapPath runat="server" />
</form>
```
上面實例中的 **<asp:SiteMapPath>** 控件是一個供服務器創建導航菜單的占位符。
- C# 基礎
- C# 簡介
- C# 環境
- C# 程序結構
- C# 基本語法
- C# 數據類型
- C# 類型轉換
- C# 變量
- C# 常量
- C# 運算符
- C# 判斷
- C# 循環
- C# 封裝
- C# 方法
- C# 可空類型(Nullable)
- C# 數組(Array)
- C# 字符串(String)
- C# 結構(Struct)
- C# 枚舉(Enum)
- C# 類(Class)
- C# 繼承
- C# 多態性
- C# 運算符重載
- C# 接口(Interface)
- C# 命名空間(Namespace)
- C# 預處理器指令
- C# 正則表達式
- C# 異常處理
- C# 文件的輸入與輸出
- C# 高級
- C# 特性(Attribute)
- C# 反射(Reflection)
- C# 屬性(Property)
- C# 索引器(Indexer)
- C# 委托(Delegate)
- C# 事件(Event)
- C# 集合(Collection)
- C# 泛型(Generic)
- C# 匿名方法
- C# 不安全代碼
- C# 多線程
- ASP.NET 簡介
- Web Pages 教程
- ASP.NET Web Pages - 教程
- ASP.NET Web Pages - 添加 Razor 代碼
- ASP.NET Web Pages - 頁面布局
- ASP.NET Web Pages - 文件夾
- ASP.NET Web Pages - 全局頁面
- ASP.NET Web Pages - HTML 表單
- ASP.NET Web Pages - 對象
- ASP.NET Web Pages - 文件
- ASP.NET Web Pages - 幫助器
- ASP.NET Web Pages - WebGrid 幫助器
- ASP.NET Web Pages - Chart 幫助器
- ASP.NET Web Pages - WebMail 幫助器
- ASP.NET Web Pages - PHP
- ASP.NET Web Pages - 發布網站
- Razor 教程
- ASP.NET Razor - 標記
- ASP.NET Razor - C# 和 VB 代碼語法
- ASP.NET Razor - C# 變量
- ASP.NET Razor - C# 循環和數組
- ASP.NET Razor - C# 邏輯條件
- ASP.NET Razor - VB 變量
- ASP.NET Razor - VB 循環和數組
- ASP.NET Razor - VB 邏輯條件
- MVC 教程
- ASP.NET MVC 教程
- ASP.NET MVC - Internet 應用程序
- ASP.NET MVC - 應用程序文件夾
- ASP.NET MVC - 樣式和布局
- ASP.NET MVC - 控制器
- ASP.NET MVC - 視圖
- ASP.NET MVC - SQL 數據庫
- ASP.NET MVC - 模型
- ASP.NET MVC - 安全
- ASP.NET MVC - HTML 幫助器
- ASP.NET MVC - 發布網站
- Web Forms 教程
- ASP.NET Web Forms - 教程
- ASP.NET Web Forms - HTML 頁面
- ASP.NET Web Forms - 服務器控件
- ASP.NET Web Forms - 事件
- ASP.NET Web Forms - HTML 表單
- ASP.NET Web Forms - 維持 ViewState
- ASP.NET Web Forms - TextBox 控件
- ASP.NET Web Forms - Button 控件
- ASP.NET Web Forms - 數據綁定
- ASP.NET Web Forms - ArrayList 對象
- ASP.NET Web Forms - Hashtable 對象
- ASP.NET Web Forms - SortedList 對象
- ASP.NET Web Forms - XML 文件
- ASP.NET Web Forms - Repeater 控件
- ASP.NET Web Forms - DataList 控件
- ASP.NET Web Forms - 數據庫連接
- ASP.NET Web Forms - 母版頁
- ASP.NET Web Forms - 導航
- Web Pages 參考手冊
- ASP.NET Web Pages - 類
- ASP.NET Web Pages - WebSecurity 對象
- ASP.NET Web Pages - Database 對象
- ASP.NET Web Pages - WebMail 對象
- ASP.NET Web Pages - 更多幫助器
- MVC - 參考手冊
- Web Forms 參考手冊
- ASP.NET Web Forms - HTML 服務器控件
- ASP.NET Web Forms - Web 服務器控件
- ASP.NET Web Forms - Validation 服務器控件
- 免責聲明