Programmeren in ASP.NET/Navigatie: verschil tussen versies

k
code in CodeFile template gestopt
kGeen bewerkingssamenvatting
k (code in CodeFile template gestopt)
1. Maak een XML-bestand met de naam web.sitemap. In Visual Web Developer Express <!-- 2005, 2008 -->en Visual Studio <!-- 2005, 2008 -->kan je de optie "Site Map" kiezen als je "Add New Item" selecteert in het "Website"-menu. Het sitemap-bestand moet één hoofdelement bevatten: <code>&lt;siteMap&gt;</code>. Daaronder kan je een aantal <code>&lt;siteMapNode&gt;</code>-elementen bevatten, en elk daarvan kan op zijn beurt opnieuw dergelijke elementen bevatten. Op die manier kan je een boomstructuur opbouwen die overeen komt met de structuur van je site. Elke <code>&lt;siteMapNode&gt;</code> kan drie attributen hebben: <code>title</code>, <code>url</code> en <code>description</code>. Bijvoorbeeld:
 
{{CodeFile|filename=web.sitemap|1=<?xml version="1.0" encoding="utf-8" ?>
{| class="prettytable"
|-
! web.sitemap
|-
| style="padding: 0; margin: 0;" | <pre style="margin: 0; border: 0; overflow: auto; max-height: 450px;"><?xml version="1.0" encoding="utf-8" ?>
<siteMap>
<siteMapNode title="Home" url="Default.aspx">
<siteMapNode title="Contact" url="Contact.aspx" />
</siteMapNode>
</siteMap></pre>}}
|}
2. Maak een nieuwe master-pagina met de naam navigatie.master, en sleep er een SiteMapDataSource-control op vanaf de Toolbox. Deze control zal automatisch verbonden worden met het web.sitemap-bestand (indien je meerdere sitemaps wil gebruiken, dan kan je dit instellen via de property "SiteMapProvider" en web.config, anders laat je die property leeg, en wordt web.sitemap gebruikt).
 
Sleep bijvoorbeeld een TreeView-control op de pagina, en stel de property DataSourceID in op SiteMapDataSource1.
 
{{CodeFile|filename=navigatie.master|1=<%@ Master Language="VB" %>
{| class="prettytable"
|-
! navigatie.master
|-
| style="padding: 0; margin: 0;" | <pre style="margin: 0; border: 0; overflow: auto; max-height: 450px;"><%@ Master Language="VB" %>
<html>
<head>
</body>
</html></pre>
|}}
Maak nu een pagina navigatie.aspx, op basis van navigatie.master.
 
Je kan een provider toevoegen aan web.config met de volgende code:
 
''{{CodeFile|filename=web.config'' (fragment)|1=...
<pre><system.web>
<siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
<providers>
</siteMap>
<!-- rest van de configuratie -->
</system.web></pre>
...}}
 
Maak nu een pagina met een SiteMapPath-control:
 
''{{CodeFile|filename=hardware.aspx''|1=<%@ Page Language="VB" %>
<pre><%@ Page Language="VB" %>
<html>
<head runat="server">
<body>
<form id="form1" runat="server">
<&lt;div>
<asp:SiteMapPath ID="SiteMapPath1" runat="server"/>
<&lt;/div>
</form>
</body>
</html></pre>}}
 
Deze pagina stond al in het web.sitemap-bestand, en daarom werkt het onmiddellijk.
Vroeger kon je wel speciale code schrijven om lange url's te verbergen, maar in ASP.NET 2.0 kan je dit gewoon configureren in web.config.
Je geeft daarbij twee url's op: de echte, en degene die je wil tonen aan de gebruiker:
{{CodeFile|filename=web.config|1=...
<pre><system.web>
<urlMappings enabled="true">
<add url="~/Home.aspx" mappedUrl="~/Default.aspx?tabid=0" />
</urlMappings>
...
...
</system.web> </pre>
...}}
Alle aanvragen voor Home.aspx worden vanaf nu doorgestuurd naar Default.aspx?tabid=0.
Gebruikers kunnen de korte link toevoegen aan hun favorieten of bookmarks, en de korte link wordt getoond in de adresbalk.
465

bewerkingen

Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.