Il nuovo modello di accesso ai dati basato sui
DataSourceControl consente con facilità di fare il binding di controlli
complessi come al GridView, la DetailView e la FormView con una facilità
impensabile. I controlli DataSourceControl hanno un design fortemente
configurabile per adattarsi alle varie esigenze. Ad esempio è possibile con
facilità parametrizzare il risultato della DataSource per mezzo di Parametri che
possono essere passati come argomenti ai metodi Select, Insert, Update e Delete.
I parametri vengono poi tradotti in modo conforme al tipo di DataSourceControl.
Ad esempio nel caso della ObjectDataSource essi divengono parametri del metodo
richiamato durante una operazione di accesso ai dati.
Esistono un buon numero di questi parametri, ad esempio
Parameter, QueryStringParameter, SessionParameter, che hanno il compito di
prelevare l'informazione da qualunque supporto sia necessario interfacciare. La
struttura di questi parametri è molto semplice tanto che è possibile con
semplicità crearne di personalizzati. Ecco ad esempio un tipo di parametro che
legge il contenuto di Context.Items e lo passa alla DataSource:
public class ContextItemParameter : Parameter
{
private string itemName;
protected override object Evaluate(
System.Web.HttpContext context,
System.Web.UI.Control control)
{
if ((context != null) && (context.Items != null))
return context.Items[this.itemName];
return null;
}
public string ItemName
{
get { return itemName; }
set { itemName = value; }
}
}
Il
nocciolo del lavoro si trova nel metodo Evaluate() che si occupa di trasformare
il contenuto dell'item in un dato digeribile dai DataSourceControl
powered by IMHO 1.3