Nella nuova versione di ASP.NET sarà presente il GridView, un webcontrol completamente nuovo che prenderà il posto del DataGrid da cui eredita molte funzionalità.
Tra l'altro il GridView ne aggiunge altre per facilitare il lavoro degli sviluppatori, con personalizzazioni e funzionalità che sono state maggiormente facilitate: chi utilizza il DataGrid sa cosa vuol dire inserire la paginazione, impostare a edit la riga di un record e così via.
Operazioni abbastanza semplici ma che impongono allo sviluppatore la scrittura di codice.
Nel GridView tutto è automatizzato ed il numero di linee di codice è praticamente zero. Vediamo un esempio che è possibile scaricare completamente come allegato:
<asp:GridView ID="GridView1" Runat="server" DataSourceID="AccessDataSource1" DataKeyNames="id" AutoGenerateColumns="true" AllowPaging="True">
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True"></asp:CommandField>
</Columns>
</asp:GridView>
Nelle proprietà del GridView è stata impostata la paginazione ed è stata aggiunta una nuova colonna con il CommandField dove abbiamo attivato i i pulsanti per cancellare il record e per la modalità di editing.
Tra le proprietà del control è presente "DataSourceID", un'altra novità.
Definendo un webcontrol all'interno di una pagina, che non produrrà nessun output, possiamo inserire i datasourcecontrol con i quali è possibile agganciarci a qualsiasi fonte di dati.
Per database SQL Server abbiamo a disposizione "SqlDataSource", per Access "AccessDataSource". Vediamo quest'ultimo in un banale esempio per una select:
<asp:AccessDataSource ID="AccessDataSource1" Runat="server" DataFile="~/articoli.mdb" SelectCommand="SELECT * FROM [Articoli]" />
Nella proprietà "DataFile" abbiamo inserito il nome del database, in "SelectCommand" la query per la richiesta dati.
Se il nostro obiettivo è la visualizzazione di una tabella, esso è concluso con due controls.
Le potenzialità del datasource non finiscono qua, perchè bastano poche proprietà per ottenere altre funzionalità come la possibilità per il GridView di cancellare o modificare record:
<asp:AccessDataSource ID="AccessDataSource1" Runat="server" DataFile="~/articoli.mdb"
DeleteCommand="DELETE FROM [Articoli] WHERE [id] = ?"
InsertCommand="INSERT INTO [Articoli] ([id], [articolo], [quantita], [categoria]) VALUES (?, ?, ?, ?)"
SelectCommand="SELECT [id], [articolo], [quantita], [categoria] FROM [Articoli] ORDER BY [id]"
UpdateCommand="UPDATE [Articoli] SET [articolo] = ?, [quantita] = ?, [categoria] = ? WHERE [id] = ?">
<DeleteParameters>
<asp:Parameter Type="Int32" Name="id"></asp:Parameter>
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Type="String" Name="articolo"></asp:Parameter>
<asp:Parameter Type="Int32" Name="quantita"></asp:Parameter>
<asp:Parameter Type="String" Name="categoria"></asp:Parameter>
<asp:Parameter Type="Int32" Name="id"></asp:Parameter>
</UpdateParameters>
<InsertParameters>
<asp:Parameter Type="Int32" Name="id"></asp:Parameter>
<asp:Parameter Type="String" Name="articolo"></asp:Parameter>
<asp:Parameter Type="Int32" Name="quantita"></asp:Parameter>
<asp:Parameter Type="String" Name="categoria"></asp:Parameter>
</InsertParameters>
</asp:AccessDataSource>
Questo codice è sufficiente per permettere la modifica a la cancellazione dei record con il GridView. Se utilizziamo come editor Visual Studio 2005, il tutto si limita a qualche click con il mouse per la selezione della fonte dei dati e della query (è presente un query builder).
Se vogliamo complicarci la vita, potremmo inserire un dropdownlist per filtrare per categoria la query appena creata.
Anche in questo caso non dobbiamo preoccupari di scrivere codice, perché i DataSource sono in grado di prendere eventuali parametri da altri webcontrol:
<asp:AccessDataSource ID="AccessDataSource1" Runat="server" DataFile="~/articoli.mdb"
DeleteCommand="DELETE FROM [Articoli] WHERE [id] = ?"
InsertCommand="INSERT INTO [Articoli] ([id], [articolo], [quantita], [categoria]) VALUES (?, ?, ?, ?)"
SelectCommand="SELECT [id], [articolo], [quantita], [categoria] FROM [Articoli] WHERE ([categoria] = ?) ORDER BY [id]"
UpdateCommand="UPDATE [Articoli] SET [articolo] = ?, [quantita] = ?, [categoria] = ? WHERE [id] = ?">
<DeleteParameters>
<asp:Parameter Type="Int32" Name="id"></asp:Parameter>
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Type="String" Name="articolo"></asp:Parameter>
<asp:Parameter Type="Int32" Name="quantita"></asp:Parameter>
<asp:Parameter Type="String" Name="categoria"></asp:Parameter>
<asp:Parameter Type="Int32" Name="id"></asp:Parameter>
</UpdateParameters>
<SelectParameters>
<asp:ControlParameter Name="categoria" DefaultValue="xxx1" Type="String" ControlID="DropDownList1" PropertyName="SelectedValue"></asp:ControlParameter>
</SelectParameters>
<InsertParameters>
<asp:Parameter Type="Int32" Name="id"></asp:Parameter>
<asp:Parameter Type="String" Name="articolo"></asp:Parameter>
<asp:Parameter Type="Int32" Name="quantita"></asp:Parameter>
<asp:Parameter Type="String" Name="categoria"></asp:Parameter>
</InsertParameters>
</asp:AccessDataSource>
Da notare la sezione "SelectParameters", in cui viene specificato come sorgente un altro webcontrol e la proprietà "PropertyName" dove è impostato il nome della proprietà da cui ricavare il dato per fare la query.
Per approfondimenti su ASP.NET 2.0 si veda
http://aspdotnet2.aspitalia.com/
- #910 - Incrementare le performance di ASP.NET rimuondo gli HttpModule non necessari
- ListView è DataPager
- ASP.NET 3.5: global.asax vs managed modules
- Introduzione ad ASP.NET 3.5
- ASP.NET Ajax Roadmap
- ASP.NET 3.5 Application Services (Membership, Roles, Profile API) sotto Classic ASP con IIS 7.0
- #930 - Propagare un evento al controllo padre nei Custom Control
- Le nuove caratteristiche di IIS 7.0 per sviluppatori e sistemisti
- #914 - Custom Control con il supporto al databind per ASP.NET 2.0
- Cosa c'è in ASP.NET 3.5 Service Pack1
- Esportazione di pagine ed allegati in formato MIME
- #923 - Caricare dinamicamente un HttpModule
Esprimi il tuo giudizio su questo script:
Per procedere devi essere autenticato.
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.







Stampa
Snippet
Download


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!