La pagina visualizza due Menu, diversificando l’orientamento, uno in orizzontale e l’altro in verticale come mostrato in figura 1.
Esempio Figura 1
La maschera, in questione, illustra come caricare dinamicamente da un database un oggetto di tipo menu senza il supporto del “SiteMapPath”. L’assegnazione dei dati relativi al menu avviene nell’evento Page_Load. Passiamo al sodo.
Ora passiamo alla Web-Form
In una form inseriamo:
un oggetto Table
HTML
< Table >
< tr >
< td >< /td >
< /tr >
< tr >< /tr >
< tr >
< td >< /td >
< /tr >
< /Table >
Due oggetti di tipo Menu
HTML
< Table >
< tr >
< td >< asp:Menu ID="Menu1" runat="server" Orientation="horizontal" >< /asp:Menu >< /td >
< /tr >
< tr >< /tr >
< tr >
< td >< asp:Menu ID="Menu2" runat="server" Orientation="vertical" >< /asp:Menu >< /td >
< /tr >
< /Table >
Impostiamo la seconda riga della tabella con un altezza = 100px
HTML
< Table >
< tr >
< td >< asp:Menu ID="Menu1" runat="server" Orientation="horizontal" >< /asp:Menu >< /td >
< /tr >
< tr height="100px" >< /tr >
< tr >
< td >< asp:Menu ID="Menu2" runat="server" Orientation="vertical" >< /asp:Menu >< /td >
< /tr >
< /Table >
Dopo aver inserito tutti gli oggetti, sopra descritti, nella pagina di default salviamo il progetto.
Stesura del codice
Dopo aver completato la parte grafica della Form, non ci resta che scrivere il relativo codice.
Il progetto in esame prevede una parte grafica, il caricamento dei menu, con il proprio codice che verrà esplicitato di seguito. Ora procedo con la stesura del codice della pagina di default.
Di seguito si riporta il codice della nostra pagina
VB.Net
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
Dim MyCls As New MyCustomSiteMap
MyCls.BuildMenu(Menu1)
MyCls.BuildMenu(Menu2)
MyCls = Nothing
End If
End Sub
End Class
Fatto ciò, si crei una Classe dove creare un Metodo che carichi dinamicamente l’oggetto menu con i dati recuperati da un database.
Conclusioni:
Ora non ci resta che testare l'applicazioni, dopo aver verificato la correttezza del codice avviare il programma. Fate attenzione al DB….In allegato oltre al sorgente della pagina di Default troverete anche la classe MyCustomSiteMap, presente nel codice sorgente clsCustomSiteMap.vb che viene utilizzata nel progetto.
Tramite la parola
download è possibile scaricare il file di esempio. Spero vi sia di aiuto.