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:
| Cognome | Nome | Citta | Stato | CodPostale |
| Fournier | Barbara | Bothell | WA | 98123 |
| Fournier | David | Bothell | WA | 98123 |
| Kennedy | John | Redmond | WA | 98053 |
| Kennedy | Sara | Redmond | WA | 98053 |
| Patterson | Ann | Auburn | WA | 98002 |
| Patterson | Neil | Auburn | WA | 98002 |
| Viescas | Carol | Kent | WA | 98042 |
| Viescas | David | Redmond | WA | 98052 |
|
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>