Il WebServerControl GridView

Il controllo Server GridView, come è stato già scritto, visualizza sotto forma di tabella, i dati contenuti in un database. Non solo: dispone anche di un ordinamento delle colonne (in ordine ascendente o discendente), permette di spostarsi tra i dati (la cosiddetta paginazione), e permette anche la modifica ed eliminazione di un record (le quali si riflettono sulla tabella del database).

Cominciamo a vedere una semplice visualizzazione di dati in un Controllo GridView. Supponiamo di voler vedere un elenco di città. I passaggi da compiere sono: inserimento del controllo AccessData Source (per stabilire la connesione al database) e l'inserimento nella web form del Controllo GridView. Dalla casella degli strumenti trascinare, in vista Progettazione, AccessDataSource. Il codice è:

<asp:AccessDataSource runat="server" 
ID="AccessDataSource1" 
DataFile="~/App_Data/NomeDatabase.mdb" 
SelectCommand="SELECT [Nomecampo1], [NomeCampo2] FROM [Nometabella]">
</asp:AccessDataSource>>

Al di sotto di esso importare il Controllo GridView. Dalle attività del controllo, selezionare l'origine dati (quella che si è creata nel passaggio precedente) e salvare. Appare immediatamente la tabella, generata dalla GridView, nella pagina.

citta
Milano
Roma
Bari
Palermo
Firenze
Trento
Bolzano
Mantova
Bologna
Ferrara

Ordinare i dati in un controllo Server Web GridView

Per impostazione predefinita, il GridView non effettua l'ordinamento dei dati quando li stampa a video ma fornisce l'interfaccia attraverso il controllo LinkButton. Tale controllo presenta, nell'intestazione della colonna, i link sui quali premere ed ordinare la tabella. Per questo esempio sarebbe meglio disporre di molti record e per l'occassione ho implementato una tabella che ne contiene circa 30.

Oltre questo controllo, esiste anche la possibilità di spostarsi tra le pagine di una GridView. Queste due proprietà prendono il nome di Paging e di PageSize.

Vediamo assieme tutte e 3 queste proprietà, nella tabella di esempio, qui di seguito:

CognomeNomeCittaStatoCodPostale
FournierBarbaraBothellWA98123
FournierDavidBothellWA98123
KennedyJohnRedmondWA98053
KennedySaraRedmondWA98053
PattersonAnnAuburnWA98002
PattersonNeilAuburnWA98002
ViescasCarolKentWA98042
ViescasDavidRedmondWA98052
1234

Da come si può vedere, cliccando sulle intestazioni della tabella, vengono ordinate le celle a seconda se si clicca sul Nome, sul Cognome ecc. Implementando il Paging si ha la possibilità di spostarsi tra i record. Il PageSize, invece, imposta i record in base alla quantità impostata. Siccome i record sono 32, le "pagine" saranno 4 ed il PageSize è stato impostato su 8. Di seguito il codice:

<asp:GridView ID="GridView2" runat="server" 
 AllowSorting="True" AutoGenerateColumns="False" 
 DataSourceID="AccessDataSource2" AllowPaging="True" PageSize="8">
<Columns>
  <asp:BoundField DataField="Cognome" HeaderText="Cognome" SortExpression="Cognome" />
  <asp:BoundField DataField="Nome" HeaderText="Nome" SortExpression="Nome" />
  <asp:BoundField DataField="Citta" HeaderText="Citta" SortExpression="Citta" />
  <asp:BoundField DataField="Stato" HeaderText="Stato" SortExpression="Stato" />
  <asp:BoundField DataField="CodPostale" HeaderText="CodPostale" SortExpression="CodPostale" />
</Columns>
    </asp:GridView>
    
    <asp:AccessDataSource ID="AccessDataSource2" 
	runat="server" 
	DataFile="App_Data/NomeDatabase.mdb"
    SelectCommand="SELECT [Cognome], [Nome], [Citta], [Stato], [CodPostale] FROM [NomeTabella]">
    </asp:AccessDataSource>