ASP.NET 2.0 Site Navigation: Leggere gli attributi custom del .sitemap

Con l'obiettivo di indicare una icona diversa per ogni voce del menu ho aggiunto un attributo ad ogni nodo del mio .sitemap, per esempio:

<siteMapNode url="~/SubAppA/" title="SubAppA" description="Sotto-Applicazione A" icon="img/btn_home1.gif"/>

Per visualizzare l'immagine con un Menu (System.Web.UI.WebControls) ho provato dal DataBinding a specificare il nome attributo ImageUrlField indicando il valore icon ma ottendo un bel errore dal Menu "Errori parsing control: Could not bind to the 'icon' property...".

Quindi ho provato a raggiungere l'obiettivo con un po di codice nell'evento

protected void Menu2_MenuItemDataBound(object sender, MenuEventArgs e)

e così ho visto che SiteMapNode.Item è una collezione read-only degli attributi custom del nodo, quindi questo codice ha fatto il caso mio.

     e.Item.ImageUrl = ((SiteMapNode)e.Item.DataItem)["icon"];

Grazie a Google ho trovato conferma di questa soluzione nel blog di Danny Chen (ASP.NET QA tester) in queto post: http://weblogs.asp.net/dannychen/archive/2005/03/28/396099.aspx

Print | posted @ lunedì 28 novembre 2005 12.21

Comments on this entry:

Gravatar # TIP ASP.Net 2.0: personalizzare lo stile dei pulsanti del menu
by Giorgio Sardo's Blog at 11/12/2005 17.12

Gravatar # TIP ASP.Net 2.0: personalizzare lo stile dei pulsanti del menu
by Giorgio Sardo's Blog at 11/12/2005 17.53

Luka ha gi

Your comment:

Title:
Name:
Email:
Website:
 
Italic Underline Blockquote Hyperlink
 
 
Please add 4 and 5 and type the answer here: