Uruchomiłem nową aplikację ASP.NET 4 WebForm. Domyślnie, plik Site.Master zawiera następujące menu:Utwórz menu z pliku web.sitemap w ASP.NET
<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">
<Items>
<asp:MenuItem NavigateUrl="~/Default.aspx" Text="Home"/>
<asp:MenuItem NavigateUrl="~/About.aspx" Text="About"/>
</Items>
</asp:Menu>
To menu zawiera dwa bloki: "Home" i "O". Podoba mi się ta struktura. Jednak chcę wypełnić NavigationMenu
w oparciu o zawartość mojego pliku Web.sitemap. W tym czasie, plik ten wygląda następująco:
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode>
<siteMapNode url="/Default.aspx" title="Home" description=""></siteMapNode>
<siteMapNode url="/Products/List.aspx" title="Products" description=""></siteMapNode>
</siteMapNode>
</siteMap>
Zmieniłem kod NavigationMenu
aby wyglądać następująco:
<asp:SiteMapDataSource ID="mySiteMapDataSource" runat="server" />
<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" DataSourceID="mySiteMapDataSource" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal" />
Moim problemem jest to, takie podejście stwarza mały blok, który reprezentuje menu. Gdy użytkownik się nad tym unosi, dwa elementy podmenu pojawiają się jako "Dom" i "Produkty". Co dziwne, plik web.sitemap obsługuje tylko jeden element siteMapNode
jako element potomny elementu siteMap
. Jak mogę sprawić, aby "Strona główna" i "Produkty" wyglądały tak samo, jak "Dom" i "Informacje", zapewniając jednocześnie elastyczność korzystania z mapy witryny?
Dziękujemy!