SiteMapPath 在子页面上消失

发布于 2024-07-13 15:17:41 字数 1092 浏览 5 评论 0原文

由于某种原因,我的页面上的 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>

For some reason on my page my SiteMapPath disappears.

Site structure:

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>

The SiteMapPath will display when I'm on the overview page of the reports page but not the MyReport page. With the sitemap bound to a treeview I see all of my nodes correctly.

Works - shows me on MyReport Page

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

Disappears on MyReport Page but visible on all others

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

往日 2024-07-20 15:17:41

我不完全是这方面的专家。 我刚刚在我的页面上测试了它,效果很好。 我所做的和你所做的唯一区别是我没有在父节点上指定文件名。 尽管我偶然发现了这一点,因为我无法在站点地图中出现两次相同的路径。

<?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>

I'm not exactly an expert on this. I did just test it on my pages and it worked fine. The only difference between what I am doing and yours is I am not specifying a filename on the parent node. Although I kind of stumbled into that one because I couldn't have the same path twice in my 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/" 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>
雨轻弹 2024-07-20 15:17:41

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

What is the URL in your browser when the control is not displayed? I'd bet that you have a querystring value or something that does not match Reports/Myreport.aspx. If the path of the page does not match an item exactly in the sitemapnode it won't display.

北方的巷 2024-07-20 15:17:41

页面的 page_load 中分配站点地图提供程序

SiteMapPath1.SiteMapProvider = "DefaultSiteMap"

在web.config 内

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

Assign sitemap provider in page_load of page

SiteMapPath1.SiteMapProvider = "DefaultSiteMap"

inside web.config

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文