Associare un'immagine ad ogni item di un control Menu

di Stefano Mostarda, in UserScript, ASP.NET 2.0, DataBinding,

Tra i nuovi controlli di ASP.NET 2.0 ci sono il treeview ed il menu. Questi controlli offrono in nativo la possibilità di interfacciarsi con un SiteMapProvider che popola i nodi in maniera automatica.
Stranamente, mentre i controlli hanno una proprietà per impostare l'immagine da associare ad ogni item, il provider di default non ha questa proprietà.
Tuttavia si può aggirare il problema legando questa proprietà in fase di databinding:

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

Ecco un esempio:

<script runat="server">
protected void Menu1_MenuItemDataBound(object sender, MenuEventArgs e)
{
  e.Item.ImageUrl = ((SiteMapNode)e.Item.DataItem)["imageurl"];
}
</script>
<form runat="server">
<div>
<asp:menu id="Menu1" runat="server" datasourceid="ds" onmenuitemdatabound="Menu1_MenuItemDataBound"></asp:menu>
<asp:sitemapdatasource id="ds" runat="server" />
</div>
</form>

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi