Home Page Home Page Articoli Scopriamo l'oggetto Gridview di ASP.NET 2.0

Scopriamo l'oggetto Gridview di ASP.NET 2.0

Nonostante la Datagrid di ASP.NET 1.x offrisse già molta flessibilità, con il Framework 2.0 è stato introdotto un nuovo oggetto, la Gridview, erede della DataGrid che, migliorata e potenziata, faciliterà di molto la vita agli sviluppatori Web.
Autore: Giovanni Ferron Livello:
Introduzione
La Gridview è nata con lo scopo di aggiungere una serie di interfacce e funzionalità che mancavano al buon vecchio Datagrid, come ad esempio il sorting, il paging o tutte le operazioni con i record, che attualmente bisogna implementare con un bel po? di codice. Oltre a queste aggiunte, con l?avvento del nuovo framework, l?intera struttura dei controlli è stata rivisitata, e sono stati rivisti molti controlli, compresi il Datalist che è diventato DatalistView e nuovi controlli come il DetailsView e il FormView.

Prima novità: Connessione sorgente dati
Una delle novità più utili è senza dubbio la connessione a una sorgente dati, che può essere un classico database, un file XML oppure, grande novità, un oggetto personalizzato (Business Object) che ci permette di collegarci a una classe già pronta. In questo articolo utilizzeremo la connessione più classica a SQL server.
Iniziamo con importare il nostro controllo nella pagina aspx, quindi andiamo nella toolbox del nostro Visual Web Developer e noteremo che i controlli che gestiscono i dati sono stati classificati nel ramo Data.



Trasciniamo il controllo nella pagina, e visto che Microsoft vuole semplificarci ancora di più la vita, apparirà una finestra di dialogo contestuale con le operazioni più comuni che possiamo effettuare con il GridView. Ricordano molto il funzionamento degli Smart Tags di Microsoft Office che pochi conoscono ma che implementati nel contesto di Visual Studio .NET 2005 facilitano enormemente l'uso dei nuovi oggetti. Questa è una delle novità di Visual Studio .NET 2005, per chi volesse vederne altre può leggere questo recente articolo:
http://www.dotnethell.it/articles/VisualStudioWhidbey.aspx ">http://www.dotnethell.it/articles/VisualStudioWhidbey.aspx 



Utilizziamo questa finestra per selezionare la nostra sorgente dati dal menù a tendina, e ci apparirà un Wizard dove selezioneremo come tipo di sorgente SQL Server, dopo di che ci verrà chiesto si specificare una connessione dati, e ciccando sul tasto new possiamo configurare la nostra connessione.



Una volta configurata la connessione continuiamo nella creazione della sorgente dati; ci viene inoltre proposto anche la possibilità di salvare la nosta connessione nel web.config, se accettate nel file comparirà un nuovo elemento , che potrà essere recuperato in ogni parte della nostra applicazione.


<connectionStrings>
<add name="AppConnectionString1" connectionString="Server=(local);UserID=sa;Password=sa;Database=Northwind;Persist Security Info=True" providerName="System.Data.SqlClient" />
</connectionStrings>


Continuando ci viene proposto di selezionare la query di SELECT, basta selezionare il nome della tabella dal menu a tendina e i campi che desideriamo visualizzare:



Ed il nostro controllo è pronto; ora analizziamo il codice che è stato prodotto con questi semplici click, noterete che sono comparsi due controlli, il GridView e un oggetto SqlDataSource. Il primo ha un codice molto simile al datagrid, con l?elenco dei campi del database, con l?aggiunta del DataSourceID che identifica da quale sorgente preleviamo i dati.


<asp:GridView ID="GridView1" Runat="server" DataSourceID="SqlDataSource1" AutoGenerateColumns="False">

<Columns>
<asp:BoundField HeaderText="CompanyName" DataField="CompanyName" SortExpression="CompanyName"></asp:BoundField>
</Columns>
...


Il secondo invece contiene l?informazione della stringa di connessione (ConnectionString) e della query (SelectCommand), se si è scelto di utilizzare il web.config per la connessione noterete il tag <%$ che indica la stringa di connessione nel file di configurazione.


<asp:SqlDataSource ID="SqlDataSource1" Runat="server" SelectCommand="SELECT [CompanyName], [ContactName], [City], [Country], [Phone] FROM [Customers]" ConnectionString="<%$ ConnectionStrings:AppConnectionString1 %>">
</asp:SqlDataSource>


Modificare / Eliminare i dati
Alcune delle operazioni più gettonate del DataGrid erano la modifica e la eliminazione dei record; la GridView semplifica anche queste operazioni. Per la modifica dei dati è necessario aggiungere un bottone di Edit, comparirà una nuova colonna con il link per la modifica. Andando sulla pagina creata noterete il link di modifica, cliccando sul link automaticamente tutti i campi DataBound diventeranno dei textbox.



La modifica del record non è implementata di default (va bene aiutarci..., ma non esageriamo!), per questa operazione il GridView utilizza il datasource, e in particolare l?attributo UpdateCommand. Per configurarlo è necessario selezionare la voce Updatequery nella finestra delle proprietà del datasource.



Comparirà una finestra Wizard dove scrivere la nostra query di update, che si presenterà così:

UPDATE dbo.Customers SET CompanyName = @CompanyName WHERE (CustomerID = @CustomerID)

Come si può notare per ricavare i valori dai textbox non bisogna far altro che precedere il nome del campo con una chiocciola, in questo modo cliccando il link di Update il DataSource eseguirà la query di update.
Lo stesso procedimento si utilizza per eliminare dei record, quindi si aggiunge il bottone per l?eliminazione e si popola l?attributo DeleteCommand con la query per l?eliminazione.

DELETE FROM dbo.Customers WHERE (CustomerID = @CustomerID)

Un altro controllo: la DetailsView
Continuiamo la nostra breve carrellata con un?altra novità, la DetailsView. Questo controllo non è altro che una schermata di dettaglio, e uno dei suoi grandi pregi è che possiamo collegarlo al nostro GridView con poche righe di codice, per presentare una breve schermata di dettaglio del nostro record.
Trasciniamo il controllo nella nostra pagina, e impostiamo come abbiamo fatto per il GridView una nuova sorgente dati, definiamo la nostra stringa si select.

SelectCommand="SELECT * FROM customers"

Dopo di che indichiamo il filtro che la sorgente dati deve applicare per visualizzare il dettaglio del record che desideriamo, in questo caso il nostro filtro sarà il CustomerID.

FilterExpression="customerid='@customerid'"

Per concludere dobbiamo definire i parametri di filtro, indicando che il controllo da cui dobbiamo recuperare il parametro è il nostro GridView principale, inoltre indichiamo anche allo scatenarsi di quale evento il nostro DetailsView deve attivarsi, in questo caso il controllo è GridView1 e l?evento è SelectedValue (selezione di un valore).

<filterparameters>
<asp:ControlParameter Name="customerid" ControlId="GridView1"
PropertyName="SelectedValue" />
</filterparameters>


Ora non dovremo far altro che aggiungere al nostro datagrid un bottone di selezione dalla gestione dei campi del GridView ed il gioco è fatto.



Come potete vedere le Table HTML renderizzate a runtime non sono scadenti (relativamente ai colori) come quelle create dal DataGrid di ASP.NET 1.x. Questo è dovuto al fatto che con il Framework 2.0 si possono applicare dei Temi/Stili e/o Skins agli oggetti. Per chi fosse interessato ne abbiamo parlato più diffusamente qui:
http://www.dotnethell.it/articles/ASPNETThemesSkins.aspx ">http://www.dotnethell.it/articles/ASPNETThemesSkins.aspx 


Paging e Sorting con la Gridview
Concludiamo dedicando poche righe alla navigazione delle pagine e all?ordinamento.
Qualcuno si ricorda come si faceva con il DataGrid? Scordatevelo! Per quanto riguarda l?ardinamento non dovrete far altro che impostare l?attributo

AllowSorting="True"

E indicare nel campo del gridview l?espressione di ordinamento

SortExpression="companyname"

Naturalmente Microsoft ci è venuta ancora incontro, cliccando la prima volta sul link per l?ordinamento ordina in modo crescente, cliccando una seconda volta in ordine decrescente.
Impostare l?impaginazione è molto simile, bisogna impostare l?attributo AllowPaging.

AllowPaging="True"

E in seguito l?attributo con il numero di record per pagina

PageSize="5"

E per fare tutto il resto ci pensa il Framework!


Conclusioni
In questo articolo abbiamo analizzato solo alcune delle più importanti novità introdotte con il Framework 2.0, e come si può notare sono sostanziali semplificazioni e riduzioni di codice. Se uno sviluppatore amante del codice (come il sottoscritto) vedrà in tutto questo una minaccia per il proprio lavoro, anche se avrà l?impressione che sua sorella/fratello minore possa programmare applicazioni web, vorrei rassicurarlo, queste facilitazioni ci daranno la possibilità di concentrarci sul miglioramento delle interfacce, e più quest?ultime saranno complicate, più sarà necessario scrivere codice, come si dice in questi casi "Quando il gioco si fa duro, i duri incominciano a giocare" :).
Voto medio articolo: 3.1 Numero Voti: 7
Giovanni Ferron

Giovanni Ferron

Sviluppatore dal 2000. Collabora a grandi progetti nella creazione di portali e intranet aziendali. Attualmente ha lasciato la terra natia per una nuova avventura in Australia, dove lavora come programmatore web per una emittente radio Australiana. Profilo completo

Articoli collegati

Riordinare le righe di una GridView con AJAX
La GridView, un controllo molto potente e flessibile che però non può offrire tutto. Vediamo in questo articolo come estenderlo implementando meccanismi di reordering delle righe usando AJAX
Autore: Riccardo D'Aria | Difficoltà:
Membership, Role e Profile Provider personalizzati
Chi deve gestire in modo consistente autenticazione, gestione dei ruoli e profilazione degli utenti di un sito Internet non può non conoscere i Providers (MembershipProvider, RoleProvider e ProfileProvider) offerti da ASP.NET. Vediamo che cosa sono, a cosa servono e come si costruiscono.
Autore: Marco Rossi | Difficoltà: | Commenti: 13
Da AJAX ad Atlas nuove tecnologie per un Web di nuova generazione
Nell'ultimo periodo si è parlato molto di Atlas l'ultima tecnologia Microsoft per rendere le pagine web dinamiche, interattive e molto più attraenti, in modo da essere sempre più somiglianti a vere e proprie applicazioni Windows. Cominciamo a conoscere questa tecnologia per sapere cosa potremo fare nelle applicazioni ASP.NET di prossima generazione.
Autore: Matteo Raumer | Difficoltà: | Commenti: 6
La classe Profile di ASP.NET 2.0
In un'applicazione ASP.NET è cosa comune avere la necessità di gestire alcune proprietà che caratterizzino ogni utente, sempre disponibili tra le varie pagine. L'approccio con la versione 1.1 del Framework si basava sull'uso dell'oggetto Session. Con la versione 2.0 il Framework ci mette a disposizione la classe Profile.
Autore: Matteo Raumer | Difficoltà: | Commenti: 3 | Voto:
Le WebParts in ASP.NET 2.0
Scopriamo le WebParts, i nuovi Web Controls di ASP.NET 2.0 che consentono di personalizzare sia i contenuti che l'interfaccia grafica delle nostre applicazioni Web, tecnologia giù utilizzata ampiamente nel prodotto Sharepoint Portal Server 2003.
Autore: Marco Caruso | Difficoltà: | Commenti: 6 | Voto:
Configurazioni Web con ASP.NET 2.0
Vediamo come cambia e come viene semplificata la configurazione in ASP.NET 2.0 attraverso i nuovi controlli di login, il tool d'amministrazione e l'amministrazione attraverso Internet Information Server (IIS)
Autore: Marco Caruso | Difficoltà: | Commenti: 4
Più facile con il .NET Framework 2.0 :-)
Da quando ho cominciato a "smanettare" per arrivare poi a "lavorare" con il framework 1.x, mi sono trovato subito a mio agio con gli elementi che il .NET metteva a disposizione, ma per alcune cose già sapevo che avrei dovuto lavorare. Con la versione 2.0 del Framework alcune di queste sono state già inserite semplificandomi ulteriormente la vita...
Autore: Matteo Raumer | Difficoltà: | Commenti: 1
ASP.NET Themes e Skins con Visual Studio .NET 2005
Una delle novità introdotte in Whidbey è la possibilità di applicare dei Temi (Themes) alle nostre applicazioni o pagine Web e addirittura applicare delle Skins singolarmente ai controlli delle Web Forms in modo estremamente flessibile e rapido.
Autore: David De Giacomi | Difficoltà: | Commenti: 3 | Voto:
Anteprima su Visual Studio .NET 2005
Visual Studio .NET Whidbey, ossia la prossima versione di Visual Studio .NET basato sul Framework 2.0 è ancora in cantiere ma grazie all'Alpha rilasciata agli sviluppatori in occasione della PDC 2003 possiamo vedere quali novità ci aspettano. Eccone alcune!
Autore: David De Giacomi | Difficoltà: | Commenti: 2
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5