ASP.NET站点导航能够在一个中央位置存储指向所有页面的连接,并在列表中呈现这些连接,也可以使用一个特定的Web服务器控件在每个页面上呈现导航菜单。设计站点导航时,使用站点地图描述站点的逻辑结构,使用ASP.NET 控件在网页上显示导航菜单,通过代码把这两者完美地结合起来,为用户导航站点提供一致的方法。
创建站点地图最简单的方法是创建一个名位Web.sitemap的XML文件,改文件按站点的分层形式组织页面。ASP.NET的默认站点地图提供程序自动选取此站点地图。
在网站创建完毕后,选择“网站”|“添加新项”命令,弹出“添加新项”对话框。在该对话框汇中选择“站点地图”,如图所示:
单击”添加“按钮,把站点地图添加到网站中。打开该文件,其代码程序如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="" title="" description="">
<siteMapNode url="" title="" description="" />
<siteMapNode url="" title="" description="" />
</siteMapNode>
</siteMap>
可以根据创建的网站来填充改文件中的三个siteMapNote元素的内容,url表示该网页的地址,title属性定义通常用作链接文本的文本,description属性同时用作文档和SiteMapPath控件中的工具提示。siteMapNote应根据网站实际层次情况,嵌套建立。
TreeView类用于在树结构中显示分层数据,如目录。使用TreeView空间实现站点导航。使用TreeView进行站点导航必须通过与siteMapDataSource空间集成实现,下面通过一个例子了解具体步骤。
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
<style type="text/css">
.style1
{
width: 100%;
}
.style2
{
font-size: xx-large;
}
</style>
</head>
<body >
<form id="form1" runat="server">
<div align="center">
<table class="style1">
<tr>
<td colspan="2" class="style2" height="100">
网站管理系统</td>
</tr>
<tr>
<td align="center" height="80%" width="30%">
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
<asp:TreeView ID="TreeView1" runat="server" DataSourceID="SiteMapDataSource1">
<SelectedNodeStyle ForeColor="#0000CC" />
<NodeStyle ForeColor="Black" />
</asp:TreeView>
<br />
</td>
<td style="text-align: left">
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server" >
</asp:ContentPlaceHolder>
</td>
</tr>
<tr>
<td colspan="2">
xx公司开发,版权所有</td>
</tr>
</table>
</div>
</form>
</body>
</html>
这个SiteMapDataSource采用的是默认设置,它的根节点就是Web.sitmap文件中层次结构的根节点。设置TreeView的DataSourceID把SiteMapDataSource和TreeView绑定在一起,这样TressView就和网站的层次结构建立起联系,每个节点表示一个网页。