Home / Programmazione / C# - Asp.NET / Il controllo server Menu in Asp.NET
Mattepuffo

Il controllo server Menu in Asp.NET

Il controllo server Menu in Asp.NET

SiteMapDataSource e SiteMapPath sono due controlli usati per la creazione del sistema di navigazione nelle pagine web in Asp.NET.

Il primo viene associato al controllo server Menu per la creazione del menu; il secondo invece può essere usato per crea un breadcrumb.

Partiamo dal primo.

Per utilizzare il SiteMapDataSource dobbiamo prima di tutto creare il file Web.sitemap dentro la root del sito:

<?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="Home">
<siteMapNode url="~/Impianto/Default.aspx" title="Impianto"  description="Impianto">
<siteMapNode url="~/Impianto/Decoder.aspx" title="Decoder" description="Decoder" />
<siteMapNode url="~/Impianto/Video.aspx" title="Video" description="Video" />
<siteMapNode url="~/Impianto/Network.aspx" title="Network" description="Network" />
<siteMapNode url="~/Impianto/Gruppi.aspx" title="Gruppi" description="Gruppi" />
<siteMapNode url="~/Impianto/Deploy.aspx" title="Deploy" description="Deploy" />
</siteMapNode>
<siteMapNode url="~/Moduli/Default.aspx" title="Moduli" description="Moduli">
<siteMapNode url="~/Moduli/Moduli.aspx" title="Moduli" description="Moduli" />
<siteMapNode url="~/Moduli/AssociazioneNetwork.aspx" title="AssociazioneNetwrok" description="Associazione netwrok" />
</siteMapNode>
<siteMapNode url="~/Library/Default.aspx" title="Library" description="Library">
<siteMapNode url="~/Library/Audio.aspx" title="Audio" description="Audio" />
<siteMapNode url="~/Library/Video.aspx" title="Video" description="Video" />
</siteMapNode>
<siteMapNode url="~/Palinsesti/Default.aspx" title="Palinsesti" description="Palinsesti">
<siteMapNode url="~/Palinsesti/Palinsesti.aspx" title="Palinsesti" description="Palinsesti" />
<siteMapNode url="~/Palinsesti/Pianificazione.aspx" title="Pianificazione" description="Pianificazione" />
</siteMapNode>
<siteMapNode url="~/Manutenzione/Default.aspx" title="Manutenzione" description="Manutenzione">
<siteMapNode url="~/Manutenzione/Notifiche.aspx" title="Notifiche" description="Notifiche" />
<siteMapNode url="~/Manutenzione/Telegrammi.aspx" title="Telegrammi" description="Telegrammi" />
</siteMapNode>
<siteMapNode url="~/Trasferimenti/Default.aspx" title="Trasferimenti" description="Trasferimenti">
<siteMapNode url="~/Trasferimenti/DeployDecoder.aspx" title="Deploy Decoder" description="Decoder" />
<siteMapNode url="~/Trasferimenti/DeployServer.aspx" title="Deploy Server" description="Deploy" />
</siteMapNode>
</siteMapNode>
</siteMap>

Il file è un XML che prende come nodi i SiteMapNode con gli url delle pagine.

Poi aggiungiamo un controllo server Menu dentro alla Master Page:

 

<div class="clear hideSkiplink">
<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false"
IncludeStyleBlock="false" Orientation="Horizontal" DataSourceID="SiteMapDataSource1"
StaticDisplayLevels="2">
</asp:Menu>
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
</div>

Questo è quanto, il menu verrà creato automaticamente.

 

Se invece vogliamo creare un breadcrumb:

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

Mettiamo nella Master dove ci interessa vederlo e modifichiamo le opzioni.

Nella pagina comparirà il classico breadcrumb!