Tisková verze článku  Poslat článek e-mailem  17. února 2008 | Radek Kropík | Komentáře (0)  

Navigace v ASP.NET

Je jasné, že každá webová aplikace, ať už se jedná o osobní stránky či nějakou mnohastránkovou prezentaci, by měla uživateli nabídnout přehlednou a jednoduchou navigaci mezi jednotlivými stránkami. Takováto navigace má většinou podobu vertikálního nebo horizontálního menu, popřípadě je možno použít i tzv. mapu webu (mapu stránek).

Web.sitemap

V ASP.NET je pro vytvoření navigace k dispozici funkce, která načte strukturu menu např. z XML souboru pomocí XmpSiteMapProvideru. Tato struktura se zapíše do speciálního souboru Web.sitemap, který se umístí do webové aplikace. Tento soubor může vypadat například takto:

<?xml version="1.0" encoding="utf-8" ?>
<siteMap
   xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
 <siteMapNode url="Default.aspx" title="Úvod"
                                  description="Úvodní stránka">
  <siteMapNode url="Nabidka.aspx" title="Hlavní nabídka">
   <siteMapNode url="Odkazy.aspx" title="Odkazy" />
   <siteMapNode url="Knihy.aspx" title="Knihy" />
   <siteMapNode url="Videa.aspx" title="Videa" />
  </siteMapNode>
  <siteMapNode url="Uzivatele.aspx" titile="Uživatelé"
                                  description="Uživatelé">
   <siteMapNode url="Prihlasit.aspx" title="Přihlásit se" />
   <siteMapNode url="NovyUz.aspx" title="Registrovat" />
  </siteMapNode>
 </siteMapNode>
</siteMap>

Menu

Nyní, když jsme si vytvořili strukturu stránek v souboru Web.sitemap, přidáme do stránek ovládací prvek Menu. Jak je již z názvu tohoto prvku patrné, tento prvek slouží k vytvoření menu. Jen malé upozornění, ovládací prvek Menu by jste měli vždy umisťovat do MaterPage, usnadníte si tím vývoj webové aplikace a dokážete jí tak snadno spravovat narozdíl od případu, kdyby jste umísťovali menu na každou stránku. Položky do menu můžete umisťovat buď pomocí výše popsaného souboru Web.sitemap nebo ručně. Nejprve si ukážeme, jak vytvořit menu ručně.

<asp:Menu ID="Menu1" runat="Server" Orientation="Horizontal">
 <Items>
  <asp:MenuItem NavigateUrl="Default.aspx" Text="Hlavní stránka">
   <asp:MenuItem NavigateUrl="Knihy.aspx" Text="Knihy" />
   <asp:MenuItem NavigateUrl="Videa.aspx" Text="Videa" />
  </asp:MenuItem>
  <asp:MenuItem NavigateUrl="Login.aspx Text="Přihlásit se" />
 </Items>
</asp:Menu>

Jak je vidět hned z prvního řádku, pomocí parametru Orientation nastavuje menu pomocí hodnoty Horizontal jako vodorovné. Pokud si přejete místo vodorovného menu vertikální, uveďte jako hodnotu tohoto parametru Vertical. Dále nastavujeme pomocí asp:MenuItem v sekci Items jednotlivé položky menu, kde NavigateUrl představuje adresu, na kterou se po kliknutí na tuto položku přejde a Text je text, který se zobrazí jako text odkazu v menu. Pokud NavigateUrl neuvedete, způsobí kliknutí na tuto položku postback a je možno tuto událost zpracovat jako kterékoliv jiné serverové události.

Pokud chcete menu vytvořit například ze souboru Web.sitemap, musíme nejprve vložit do stránky nevizuální ovládací prvek SiteMapDataSource, který poslouží jako zdroj dat pro ovládací prvek Menu.

<asp:SiteMapDataSource ID="DataSource1" runat="server" />

Vložení tohoto prvku je vcelku triviální, důležité je zde ID, pomocí kterého propojíme tento ovládací prvek s ovládacím prvkem Menu a jeho parametru DataSourceID a to následovně:

<asp:Menu ID="Menu2" runat="server" DataSourceID="DataSource1">

Toto je vše, co je potřaba udělat, aby se nám menu načítalo ze souboru Web.sitemap. V tomto stavu menu nevypadá zrovna nejlépe, proto je zde samozřejmě možné vzhled jednotlivých položek menu upravit podle svých představ. Jednotlivé položky můžete nastavovat buď přímým zápisem, např.: <StaticMenuItemStyle ForeColor="#000" />, nebo pomocí témat Themes. O používání témat a o skinování ASP.NET aplikace si budeme povídat v některém z dalších článků.

SiteMapPath

Poslední věc, kterou si dnes predstavíme, je ovládací prvek SiteMapPath, který slouží k zobrazování cesty od hlavní stránky webové aplikace až po aktuální dokument. Někdy je toto nazýváno jako Drobečková navigace. Přidání tohoto prvku je vcelku jednoduché a postačí, pokud tento prvek umístíme do stránky. Prvek je samozřejmě možno také ostylovat k obrazu svému. Například pomocí <PathSeparatorTemplate> &#187; </PathSeparatorTemplate> určíme, jaký znak se má použít jako oddělovač jednotlivých položek, v tomto případě je to znak », popřípadě pomocí <CurrentNodeStyle Font-Bold="true" /> určíme, že aktuální dokument bude vypsán tučným písmem.

<asp:SiteMapPath ID="SiteMapPath1" runat="server">
  <PathSeparatorTemplate>&#187;</PathSeparatorTemplate>
  <CurrentNodeStyle Font-Bold="true" />
</asp:SiteMapPath>

Tímto článkem jsme si představili možnosti, jak do ASP.NET aplikace přidat jednoduše navigaci a tak jednotlivé stránky propojit v jeden celek a umožnit uživateli naší aplikace snadnou orientaci v celé struktuře webu. Je jasné, že jsme neprobrali všechny možnosti, které navigace v ASP.NET nabízí, to by vyšlo na několik článků. V budoucnu se jistě ještě k této problematice vrátíme a představíme si další možnosti, jak navigovat uživatele po naší ASP.NET aplikaci.


Radek Kropík




Komentáře k článku


Příspěvky vyjadřují stanovisko čtenářů, nikoliv provozovatelů serveru a redakce nenese odpovědnost za jejich obsah.




     Komentáře k tomuto článku byly již uzavřeny.


Novinky a oznámení

19.10.11 - Nyní najdete nově u každého článku ikonu obálky. Pokud na ní kliknete, budete moci odeslat odkaz na vybraný článek na e-malovou adresu, kterou zadáte v zobrazivším se formuláři. Odpadá vám tak nutnost pro odeslání odkazu na zajímavý článek spouštět e-mailového klienta a zakládání nového e-mailu.

11.10.11 - Nově v magazínu naleznete tzv. QR kód, který obsahuje vždy adresu právě zobrazené stránky. Pokud máte zobrazenou některou z kategorií článků, obsahuje QR kód adresu této kategorie, pokud máte zobrazený článek, QR kód obsahuje adresu zobrazeného článku, v ostatních případech obsahuje QR kód hlavní adresu magazínu.

23.09.11 - V neděli 25.9.2011 v době mezi 1:00 a 5:00 hod. proběhl přesun služeb serveru na nový hardware. Za nedostupnost magazínu v době přesunu se vám omlouváme.


QR kód článku

QR kód článku

Aktualizace e-mailem

Nechcete, aby vám unikl nový článek? Není nic jednoduššího, než se zaregistrovat a kdykoliv vyjde v magazínu nový článek, dáme vám vědět e-mailem.




Ikonka pro Vás

Líbí se vám tento magazín a rádi byste ho nějak podpořili? Pokud máte své webové stránky, budeme vám vděčni, pokud si na ně přidáte naší ikonku. Stačí přidat na váš web HTML kód, kderý najdete zde.


Partnerské weby


Naši fanoušci na Facebooku


Statistika


Reklama