网站导航——网站地图和TreeView的使用

来源:互联网 发布:windows过期如何激活 编辑:程序博客网 时间:2024/04/18 09:48
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就和网站的层次结构建立起联系,每个节点表示一个网页。