2009-02-10 63 views
0

出于某种原因,在我的页面上我的SiteMapPath消失了。SiteMapPath在子页面上消失

网站结构:

WebApp 
-Default.aspx 
-> Reports\ 
----Default.aspx 
----MyReport.aspx 

Web.sitemap中

<?xml version="1.0" encoding="utf-8" ?> 
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > 
    <siteMapNode url="~/Default.aspx" title="Overview" description="Overview"> 
    <siteMapNode url="~/Reports/Default.aspx" title="Reports" description="Reports" > 
     <siteMapNode url="~/Reports/MyReport.aspx" title="MyReport" description="MyReport" /> 
    </siteMapNode> 
    </siteMapNode> 
</siteMap> 

,当我的报告页面的概述页面而不是MyReport页上的SiteMapPath显示。通过绑定到树形视图的站点地图,我可以正确地看到所有节点。

作品 - 显示我的MyReport页

<asp:TreeView ID="TreeView1" runat="Server" DataSourceID="SitePathDataSource"> 
</asp:TreeView> 

上消失MyReport页面,但显示在所有其他

<asp:SiteMapPath ID="SiteMapPath1" runat="server" DataSourceID="SitePathDataSource"> 
</asp:SiteMapPath> 
+0

。你说一个树形视图工作正常? – bendewey 2009-02-10 21:53:34

+0

SiteMapPath控件 – 2009-02-10 22:06:52

回答

0

我不太这方面的专家。我只是在我的网页上测试它,它运行良好。我在做什么和你的唯一区别是我没有在父节点上指定一个文件名。虽然我偶然发现了一个,因为我的站点地图中没有两次相同的路径。

<?xml version="1.0" encoding="utf-8" ?> 
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > 
    <siteMapNode url="~/Default.aspx" title="Overview" description="Overview"> 
     <siteMapNode url="~/Reports/" title="Reports" description="Reports" >  
      <siteMapNode url="~/Reports/Default.aspx" title="Reports Home" description="Home" /> 
      <siteMapNode url="~/Reports/MyReport.aspx" title="MyReport" description="MyReport" />  
     </siteMapNode> 
    </siteMapNode> 
</siteMap> 
0

当控件不显示时,浏览器中的URL是什么?我敢打赌,你有一个查询字符串值或与Reports/Myreport.aspx不匹配的东西。如果页面路径与网站地图节点中的项目完全不匹配,则不会显示。在

SiteMapPath1.SiteMapProvider = "DefaultSiteMap" 

页的Page_Load中

0

指定站点地图提供者内您正在使用什么类型的控件来显示地图的web.config

<siteMap defaultProvider="DefaultSiteMap" enabled="true"> 
<providers> 
<add name="DefaultSiteMap" type="System.Web.XmlSiteMapProvider" siteMapFile="~\SiteMaps 
\Default.sitemap" /> 
</providers>