2012-06-25 48 views
0

我有一个.sitemap文件,其中包含我想为我的侧面导航显示的所有节点。当我到达子级别时,我无法显示所有节点。当我访问子页面时,一切都消失了。换句话说,当我在homepage.aspx页面中时,所有节点都可见。当我进入level1a.aspx页面时,所有节点都消失了。我没有背后的代码。是否有显示所有节点的设置?或者我需要编写代码来显示它们全部?ASP.NET SiteMap显示所有节点

以下是文件: 的web.config

<siteMap> 
     <providers> 
    <add name="SiteMap" type="System.Web.XmlSiteMapProvider" siteMapFile="~/my.sitemap" /> 
     </providers> 
    </siteMap> 

control.ascx

<asp:SiteMapDataSource ID="SiteMapDataSource1" SiteMapProvider="SiteMap" runat="server" /> 
<asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource1"></asp:Menu> 

my.sitemap

<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > 
<siteMapNode url="/HomePage.aspx" title="Home Page" description=""> 
    <siteMapNode url="/level1.aspx" title="Level 1" description=""> 
    <siteMapNode url="/level1a.aspx" title="Level 1 A" description="" /> 
    <siteMapNode url="/level1b.aspx" title="Level 1 B" description="" /> 
    </siteMapNode> 
</siteMapNode> 
</siteMap> 

回答

1

我只是做实验,它工作正常...

仔细检查所有网页包含到您的用户控件的引用

这是我做过什么

UC

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MyMenuUC.ascx.cs" Inherits="WebApplication1.MyMenuUC" %> 
<asp:SiteMapDataSource runat="server" ID="mySiteMapDataSource" ShowStartingNode="false" /> 
<asp:Menu runat="server" DataSourceID="mySiteMapDataSource"></asp:Menu> 

网站地图

<?xml version="1.0" encoding="utf-8" ?> 
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > 
    <siteMapNode url="~/Default.aspx" title="Home" description=""> 
     <siteMapNode url="~/MenuWithUC1.aspx" title="page 1" description="" /> 
     <siteMapNode url="~/MenuWithUC2.aspx" title="page 2" description="" /> 
    </siteMapNode> 
</siteMap> 

MenuWithUC1.aspx

<%@ Register Src="~/MyMenuUC.ascx" TagName="SharedMenu" TagPrefix="menu" %> 
    .... 
    <menu:SharedMenu runat="server" /> 
    <asp:Button ID="Button1" Text="post me" runat="server" /> 

MenuWithUC2.aspx

<%@ Register Src="~/MyMenuUC.ascx" TagName="SharedMenu" TagPrefix="menu" %> 
    .... 
    <menu:SharedMenu runat="server" /> 
    <asp:Button Text="post me" runat="server" /> 

每个页面上的按钮只是为了测试该Menu控制保持其状态每个帖子

+0

嗯奇怪的。我将该控件放在主页上,它只适用于HomePage.aspx,但不适用于子页面。这是假设从母版页继承控件。我把另一个控件放在子页面中,它就会出现。任何方式显示侧导航只有控制器放在MasterPage内? – Anna

+0

啊!我发现它为什么不起作用!愚蠢的错误。我在我的母版页的中控制了内容,并且我的子页面覆盖了站点地图控件。感谢您的帮助,虽然= D – Anna

0

尝试的EnableViewState =真

<asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource1" EnableViewState="true"></asp:Menu> 
+0

它不工作 – Anna