2012-06-25 102 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