首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

请教,SiteMapPath为什么只能显示第一层结点啊

2012-05-24 
请问,SiteMapPath为什么只能显示第一层结点啊?web.sitemap:?xml version1.0 encodingutf-8 ?site

请问,SiteMapPath为什么只能显示第一层结点啊?
web.sitemap:

<?xml version="1.0" encoding="utf-8" ?>
<siteMap>
  <siteMapNode title="主页" url="home.aspx">
  <siteMapNode title="服务" url="service.aspx">
  <siteMapNode title="培训" url="training.aspx"/>
  <siteMapNode title="技术支持" url="support.aspx"/>
  </siteMapNode>
  </siteMapNode>
</siteMap>



home.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="home.aspx.cs" Inherits="_Default" %>

<!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>
</head>
<body>
  <form id="form1" runat="server">
  <div>
  <br />
  <asp:SiteMapPath ID="SiteMapPath1" runat="server">
  </asp:SiteMapPath>
  &nbsp;</div>
  </form>
</body>
</html>



  查了好多资料,最后还是无功而返,谢谢各位的帮忙!


[解决办法]
web.sitemap文件一定要包含该页的记录,即<siteMapNode title="***" description="***" 
url="~/***.aspx" />结点,至少有一个是该页的url,例如该页是default.aspx,那么必须有这么一个节点<siteMapNode title="***" description="***" 
url="~/default.aspx" />
[解决办法]
楼主好像没有理解SiteMapPath的用途,这个控件是用来显示导航位置的,就比方说本页面在MSDN上的当前位置是(看下页面顶部):
CSDN - CSDN社区 - .NET技术 - ASP.NET

如果你把最内层那个siteMapNode 改成 home.aspx, 最顶层的siteMapNode 改成随便其它名称,你就可以看到长长的一串显示出你的页面的当前位置。试一试看看效果你就明白了。
[解决办法]
当在home.aspx的SiteMapPath显示的是主页
如果你想看到所有的节点,就在support.aspx。SiteMapPath节点显示是从后向前的。

热点排行