DevTrain Startseite Visual Studio 1 Magazin  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren


   Autor: Hannes Preishuber Artikel Drucken
        
zusätzliche Attribute aus Web.Sitemap auswerten

Eine Sitmap Datei dient als Steuerung der Navigation einer Web Page. Zur visualisierung kommt dann ein Menü oder Treeview Steuerelement zum Einsatz. Die Bindung wird über das SitemapDataSource Control hergestellt.

Eine Sitemap Datei enthält Elemente wie URL, Title oder Description. Die Frage ist allerdings, wie kann man zusätzliche Attribute verwenden um z.B. das Aussehen des Menüs per web.sitemap zu steuern. Hier in diesem Beispiel soll die Schriftfarbe aus der Sitemap Datei mit dem frei erfundenen Attribut Farbe definiert werden.

<?xml version="1.0" encoding="utf-8" ?>

<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >

<siteMapNode url="home.aspx" title="home" description="" farbe="red">

<siteMapNode url="eins.aspx" title="eins" description="" farbe="silver" />

<siteMapNode url="zwei.aspx" title="zwei" description="" farbe="green" />

</siteMapNode>

</siteMap>

Die ASPX Seite enhält dann folgenden Code

<form id="form1" runat="server">

<div>

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

</div>

<asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource1"

OnMenuItemDataBound="Menu1_MenuItemDataBound" Orientation="Horizontal" StaticDisplayLevels="2">

</asp:Menu>

</form>

So und nun zum spannenden Teil. Jedesmal wenn ein neuer Node des Menüs erzeugt wird, wird auch das Ereignis MenuitemDataBound ausgeführt. Dort kann man per Dataitem auf die Daten und den Node aus der Sitemap zugreifen. Ausserdem kann man per e.Item auf den Node des Menüs zugreifen und so den Text manipulieren. Hier wurde nicht besonders schön aber kreativ einfach statt dem Text eine HTML Element zusammengebaut das die Schriftfarbe abbildet.

Protected Sub Menu1_MenuItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.MenuEventArgs)

Dim node As SiteMapNode = CType(e.Item.DataItem, SiteMapNode)

e.Item.Text = "<font color=" + node("farbe") + ">" + e.Item.Text + "</font>"

End Sub


DevTrain Camp - Schneller zum .NET 3.5 Developer
 
Verwandte Artikel      Verlinkte Dokumente
    Keine verknüpften Dokumente
    Keine Links vorhanden

  Erfasst am: 20.12.2006
  Gültig bis: 20.03.2007
2 Ratings
Bewertung: 90,0%
schlecht    sehr gut  

 
© Copyright 2007 ppedv AG