HowTo – Guida ASP.NET (Parte 7)


PARTE 3 – CAPITOLO 7 – DATA BINDING

Il Data-binding è una funzione che permette di associare un Data-source con un web-control che mostrerà i dati prelevati dal Data-Source in modo autonomo.
Usando i Data Source Controls è possibile definire un collegamento (dichiarativo) tra la pagina e il data-source. In seguito possono essere agganciati a design-time.
La caratteristica chiave del data-binding è che si tratta di una feature dichiarativa e non programmatica (definita nella pagina).
Molti web-controls supportano Single-Value Data Binding. In questi casi è possibile associare una control property ad un data source, ma il controllo può mostrare solo un singolo valore (ad esempio la classica pagina di “dettaglio prodotto”).
I Single-Value Bindning si dichiarano all’inizio della pagina aspx all’interno dei tag (ci sono anche le espressioni racchiuse tra e tali espressioni possono anche essere personalizzate).
Con Repeated-value binding è possibile creare liste e griglie di elementi. Se un controllo supporta Repeated-value-binding offre anche la proprietà DataSource (che accetta un oggetto come parametro).
I Rich Data Control sono sviluppati solo per il Data-Binding, per mostrare diverse proprietà o campi da ciascun Data Item, spesso in un layout table-based.
Tra i Rich Data Control più noti offerti da ASP.NET ci sono gli oggetti GridView (una particolare tabella che supporta operazioni di selezione, modifica, cancellazione, paginazione e ordinamento), DetailsView (una tabella che mostra un elemento alla volta) e FormView (un controllo che, grazie ai templates, può visualizzare, editare e creare un singolo elemento di un Data Source).
SqlDataSource, in combinazione con una GridView, può essere usato, come abbiamo appena visto, anche per aggiornare/eliminare i valori (basta usare il comando XXXCommand nell’etichetta SqlDataSource). Anche in questo caso potrebbe essere necessario evitare concorrenze: basta settare il parametro SqlDataSource.ConflictDetection a ConflictOptions.CompareAllValues e inserire la clausola OldValuesParameterFormatString=”original_{0}” per poi permettere l’update solo in caso di matching completo di tutti i valori (Una alternativa per utilizzare meno risorse è il già citato confronto del timestamp mediante un controllo nascosto).
ObjectDataSource permette di creare link dichiarativi tra i controlli della pagina web e un componente di accesso ai dati che lancia comandi (SQL). Si tratta di un costrutto molto flessibile ma per utilizzarlo la classe di accesso ai dati deve rispettare alcune regole: tutta la logica deve essere contenuta in una singola classe, deve offrire i risultati della query quando viene chiamato un singolo metodo, i risultati di una query devono essere rappresentati in una struttura che implementi l’interfaccia IEnumerabel (collection array, DataSet, DataTable, DataView), ogni record deve essere un oggetto che offre i propri dati tramite proprietà pubbliche, possono essere usati instance o static method e deve essere stateless.
Con il comando DataTextFieldè possibile passare ad un Data Source il valore corrente come parametro (si pensi, ad esempio, all’implementazione di una doppia Drop Down con la dipendenza regione-provincia).

[Omnia / Luca Zaccaro]


Una risposta a “HowTo – Guida ASP.NET (Parte 7)”

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *