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

 


per leggere il post originale o inviare un commento visita il seguente indirizzo: ASP.NET 2.0: Create un parameter personalizzato per i DataSourceControl