Il controllo server GridView (GV) è uno dei controlli più utlizzati in ambito Asp.NET per rappresentare i dati in forma tabellare.

Volendo è possibile controllarla senza scrivere una riga di codice, ma qui vi spiegherò come fare scrivendo tutto a mano usando il C#.

Prima di tutto creiamo aggiungiamo una GV alla pagina; vi posto la mia:

<asp:GridView ID="DecoderView" runat="server" DataKeyNames="sito#">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="SelectedItem" AutoPostBack="true" runat="server" OnCheckedChanged="btn_check" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="sito#" HeaderText="sito#" SortExpression="sito#" InsertVisible="False" />
<asp:BoundField DataField="localita" HeaderText="localita" SortExpression="localita" />
<asp:BoundField DataField="descrizione" HeaderText="descrizione" SortExpression="descrizione" />
<asp:BoundField DataField="IP" HeaderText="IP" SortExpression="IP" />
<asp:BoundField DataField="riserva" HeaderText="riserva" SortExpression="riserva" />
<asp:BoundField DataField="Expr2" HeaderText="gruppo#" SortExpression="Expr2" />
<asp:BoundField DataField="Expr1" HeaderText="tipo_deploy#" SortExpression="Expr1" />
<asp:BoundField DataField="versione" HeaderText="versione" SortExpression="versione" />
<asp:BoundField DataField="versione_itl" HeaderText="versione_itl" SortExpression="versione_itl" />
<asp:BoundField DataField="ultimo_avvio" HeaderText="ultimo_avvio" SortExpression="ultimo_avvio" />
<asp:BoundField DataField="app_disk_space" HeaderText="app_disk_space" SortExpression="app_disk_space" />
<asp:BoundField DataField="TGU" HeaderText="TGU" SortExpression="TGU" />
<asp:BoundField DataField="ip_voyager" HeaderText="ip_voyager" SortExpression="ip_voyager" />
</Columns>
</asp:GridView>

L' uniche proprietà che ho impostato è il DataKeyNames che corrisponde alla Primary Key della mia tabella SQL Server.

Poi ho aggiunto a mano le colonne (i campi) da visualizzare; nel mio caso la prima colonna è una serie di CheckBox.

Le colonne che rappresentano i dati vengono controllate attraverso oggetti BoundField, nei quali dovete impostare il DataField (il nome del campo della tabella), l'HeaderText (l'inrtestazione della colonna nella GV) e la SortExpressione (in genere uguale al DataField).

Per quanto riguarda la pagina abbiamo finito; tutto il resto sarà fatto da code-behind.

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.