Il .NET Framework per certi versi è davvero ottimo.

Quello che vediamo oggi è come riempire una GridView da dati presi da un file XML.

Come potremo vedere, la cosa sarà molto semplice (soprattutto se non abbiamo pretese di personalizzazione); così semplice che neanche vi dirò com'è strutturato il file.

Ovviamente, in questo semplice esempio, verranno create tante colonne quanti sono i campi presenti nel file.

Quindi questo dipende anche dalle vostre esigenze.

Inoltre il progetto si basa su un Windows Form classico (l'ho preferito al WPF).

Bene, prima di tutto trasciniamo nella finestra un oggetto DataGridView.

In un precedente articolo avevo parlato di come leggere in feed RSS usando Asp.NET e il C#.

Solo che ho notato che in alcuni casi quel metodo crea problemi e visto che non sono riuscito a risolvere ho usato un secondo metodo che adesso vi posto.

In questo caso non avremo bisogno del code-behind, ma solo di controlli server e tutto sarà fatto nella pagina Asp.NET.

Nello specifico useremo un XmlDataSource che prenderà i dati da una pagina web.

Questo XmlDataSource sarà il data-source di un altro controllo, un DataList.

Per andare a prendere i dati che ci servono useremo XPath.

SiteMapDataSource e SiteMapPath sono due controlli usati per la creazione del sistema di navigazione nelle pagine web in Asp.NET.

Il primo viene associato al controllo server Menu per la creazione del menu; il secondo invece può essere usato per crea un breadcrumb.

Partiamo dal primo.

Per utilizzare il SiteMapDataSource dobbiamo prima di tutto creare il file Web.sitemap dentro la root del sito:

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="~/Default.aspx" title="Home" description="Home">
<siteMapNode url="~/Impianto/Default.aspx" title="Impianto"  description="Impianto">
<siteMapNode url="~/Impianto/Decoder.aspx" title="Decoder" description="Decoder" />
<siteMapNode url="~/Impianto/Video.aspx" title="Video" description="Video" />
<siteMapNode url="~/Impianto/Network.aspx" title="Network" description="Network" />
<siteMapNode url="~/Impianto/Gruppi.aspx" title="Gruppi" description="Gruppi" />
<siteMapNode url="~/Impianto/Deploy.aspx" title="Deploy" description="Deploy" />
</siteMapNode>
<siteMapNode url="~/Moduli/Default.aspx" title="Moduli" description="Moduli">
<siteMapNode url="~/Moduli/Moduli.aspx" title="Moduli" description="Moduli" />
<siteMapNode url="~/Moduli/AssociazioneNetwork.aspx" title="AssociazioneNetwrok" description="Associazione netwrok" />
</siteMapNode>
<siteMapNode url="~/Library/Default.aspx" title="Library" description="Library">
<siteMapNode url="~/Library/Audio.aspx" title="Audio" description="Audio" />
<siteMapNode url="~/Library/Video.aspx" title="Video" description="Video" />
</siteMapNode>
<siteMapNode url="~/Palinsesti/Default.aspx" title="Palinsesti" description="Palinsesti">
<siteMapNode url="~/Palinsesti/Palinsesti.aspx" title="Palinsesti" description="Palinsesti" />
<siteMapNode url="~/Palinsesti/Pianificazione.aspx" title="Pianificazione" description="Pianificazione" />
</siteMapNode>
<siteMapNode url="~/Manutenzione/Default.aspx" title="Manutenzione" description="Manutenzione">
<siteMapNode url="~/Manutenzione/Notifiche.aspx" title="Notifiche" description="Notifiche" />
<siteMapNode url="~/Manutenzione/Telegrammi.aspx" title="Telegrammi" description="Telegrammi" />
</siteMapNode>
<siteMapNode url="~/Trasferimenti/Default.aspx" title="Trasferimenti" description="Trasferimenti">
<siteMapNode url="~/Trasferimenti/DeployDecoder.aspx" title="Deploy Decoder" description="Decoder" />
<siteMapNode url="~/Trasferimenti/DeployServer.aspx" title="Deploy Server" description="Deploy" />
</siteMapNode>
</siteMapNode>
</siteMap>

Il file è un XML che prende come nodi i SiteMapNode con gli url delle pagine.

Sulla scia dell'articolo di questo, in cui spiego come riempire una JComboBox cone dati presi da db, ho deciso di scrivere una guida per la "gemella" DropDownList di Asp.NET.

Tenendo in considerazione che qua come db uso SQL Server e come linguaggio il C#.

Lo scenario però è lo stesso, quindi dategli una letta.

Riassumendo voglio rimepire la DDL con dati presi dalla tabella autori che ha solo due campi:

  • author_id (int)
  • author_name (string)

DropDownList è uno dei controll Web più utilizzati.

Da Visual Studio è facile riempirli, ma preferisco usare il code-behind.

La procedura però è molto più veloce in quanto il framework mette a disposizione i metodi per scegliere il valore della DDL e cosa viene rappresentato.

Prima di tutto aggiungiamo una DDL alla pagina:

<asp:DropDownList ID="ddlAuthor" runat="server">
</asp:DropDownList>

Sulla pagina non faremo nient'altro, quindi spostiamoci nel code-behind.