0

サイドナビゲーション用に表示したいすべてのノードを含む.sitemapファイルがあります。サブレベルに到達すると、すべてのノードを表示できません。サブページにアクセスすると、すべてが消えてしまいます。つまり、homepage.aspxページを表示すると、すべてのノードが表示されます。level1a.aspxページに入ると、すべてのノードが消えます。背後にコードはありません。すべてのノードを表示する設定はありますか?または、それらすべてを表示するコードを作成する必要がありますか?

ファイルは次のとおりです: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>
4

2 に答える 2

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>

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="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コントロールが各投稿でその状態を維持していることをテストするためのものです

于 2012-06-25T19:14:59.083 に答える
0

EnableViewState=trueで試してください

<asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource1" EnableViewState="true"></asp:Menu>  
于 2012-06-25T19:13:59.030 に答える