ASP.NET 站点地图

时间: 2023-10-04 admin IT培训

ASP.NET 站点地图

ASP.NET 站点地图

1、XML文件介绍
XML的组成:
(1) 声明:每个XML文件的第一行就是声明

(2) 元素:组成XML文件的最小单位,它由一堆表及来定义,也包括其中的内容
(3) 标记:标记用来定义元素,必须成对出现,中间包含数据
(4) 属性:属性是对标记的描述,一个标记可以有多个属性
2、建立站点地图
如果要使用ASP.NET的导航控件,必须建立站点地图文件Web.sitemap,站点地图文件必须位于网站根文件夹下。一个网站里可以添加多个站点地图文件,但是站点地图文件是不能随便改名的,尤其是第一个站点地图文件
站点地图文件使用一堆标记和若干对标记,并以.sitemap作为扩展名。
其中,和成为根元素,它包含若干对由和表示的节点,并且节点是嵌套的
建立站点地图的过程:
(1) 右击—添加—添加新项—站点地图

(2) 编辑站点地图内容,如下图所示:

(3) 新建web页面(Default.aspx),放入一个SiteMapDataSource控件(在 数据 里);再放入一个TreeView控件(在 导航 里);选中TreeView控件,选择数据源为SiteMapDataSource1,刷新架构

(4) 运行调试(这里我改了字体颜色)

4.3.2 导航控件
1、SiteMapDataSource控件
SiteMapDataSource控件是网站导航数据的数据源,这些数据存储在为网站配置的网站地图提供的陈晓个股中,将本控件拖至窗体中,产生如下代码:

SiteMapDataSource控件自动读取网站根文件夹下Web.sitemap文件中的XML数据,本数据源江北ASP.NET导航控件调用。
2、SiteMapPath控件
SiteMapPath控件会显示一个导航路径,实现面包屑导航。面包屑导航的作用是告诉访者他们目前在网站中的位置,以及如何返回。
SiteMapPath控件可以根据Web.sitemap中定义的数据自动显示网站的路径,此路径为用户显示当前网页的位置,并显示返回到主页的路径链接。
SiteMapPath控件与一般的数据控件不同,他自动绑定网站地图文件,
SiteMapPath控件在设计窗口中的显示内容与本页面是否其它网站地图文件中的定义相关。如果页面没有作为一个节点在站点地图文件中定义,那么其所在层次的SiteMapPath控件中就不会显示出来。
案例:面包屑导航
(1) 站点地图程序如下:

(2) 在三个web页面中都放入SiteMapPath控件
(3) 三个web页面的SiteMapPath控件显示分别如下:

3、TreeView控件
TreeView控件用于在树结构中显示分层数据,它可以绑定XML数据源或者使用SiteMapDataSource控件,包含若干个节点,每个节点都可以链接到一个新的页面。
案例:使用TreeView控件
(1) 添加站点地图文件
(2) 站点地图控件内容如下:

注意:站点地图中的URL具有唯一性;上图中的URL都是我随意建立的,实际使用时要区分不同的web页面
(3) 在主页Default.aspx中添加一个SiteMapDataSource控件和TreeView控件,并设置TreeView控件的ID属性的值为SiteMapDataSource1(在设计视图中选择数据源为SiteMapDataSource1)

(4) 运行调试

4、Menu控件
使用Menu控件,开发人员可以再网页上模拟Windows的菜单导航效果。
Menu控件有一下两种显示模式:
静态模式:指Menu自始至终都是展开的状态,都是可见的,用户可以点击其他任何部分。
动态模式:默认只显示部分内容,当用户将鼠标指针放在父节点上时才会显示其子节点。
Menu可以使用控件自带的添加功能对站点导航页面数据进行添加,也可以使用数据源添加,在使用数据源添加的时候一定要将Menu控件的DataSourceID属性的值设置为SiteMapDataSource控件的ID值
案例:使用Menu控件
(1) 添加站点地图
(2) 新建主页Default.aspx,在其中添加一个SiteMapDataSource控件和Menu控件,并设置Menu控件DataSourceID属性的值为SiteMapDataSource1,设置的SiteMapDataSource1的ShowStartingNode属性(指示是否应返回开始节点)的值为false
(3) 运行调试

(4) 假设在一个网站中有默认的站点地图文件Web.sitemap,还有另一个站点地图文件Web2.sitemap
在一个页面中有一个ID为SiteMapDataSource1的数据源控件,要想把Web2.sitemap配置成SiteMapDataSource1能识别的站点地图文件,需要进行以下两个步骤:
1) 修改Web.config文件
在Web.config文件中的<system.web>下添加以下内容:(默认Web2.sitemap已经建立过了)

2) 设置SiteMapProvider属性
在SiteMapDataSource1属性窗口的SiteMapProvider中填“kk”
3) 解读
新建了一个站点地图,把她命名为“kk”,在Default.aspx中的SiteMapDataSource1,我们将他的SiteMapProvider属性(用于填充数据源控件的提供程序的名称)设置为了“kk”,即,如若我们再使用Menu控件或者TreeView控件,数据源选择的是SiteMapDataSource1,那么运行的效果将是我们在Web2.sitemap(即命名的kk)中编辑的内容。
4) 运行调试

注意:这里在设计视图中显示的还是Web.sitemap的内容