请问,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>
</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节点显示是从后向前的。