Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Le novità  di Visual Studio 11 (parte quarta)

Link copiato negli appunti

Visual Studio 11 (vNext), la prossima versione del noto ambiente di sviluppo Microsoft, porterà  con se numerose novità  che con questa serie di post stiamo cercando di affrontare per non trovarci impreparati quando Visual Studio 11 sarà  rilasciato ufficialmente. Sempre in tema di Data Binding, dopo aver parlato del nuovo paradigma denominato Model Binding ed aver visto un piccolo esempio di come sia diventato davvero semplice mettere in binding un controllo server con i nostri metodi di accesso ai dati, vedremo ora come sarà  altrettanto semplice impostare dei filtri sui dati da visualizzare.

Nel post precedente abbiamo visto l'esempio di una GridView di prodotti:

Che popolavamo con un semplice metodo di recupero dati:

public IQueryable<Product> GetProducts() {
    var dbECommerce = new dbECommerce();
    return dbECommerce.Products.Include(o => o.Orders);
}

Se oltre a cià ora volessimo anche fare in modo che l'utente possa filtrare i dati sulla base di un certo parametro Value Providers nome

public IQueryable<Product> GetProducts([QueryString]string name)
{
    IQueryable<Product> query = dbECommerce.Products;
    if (!String.IsNullOrWhiteSpace(name))
    {
        query = query.Where(p => p.Name.Contains(name));
    }
    return query;
}

Notiamo l'attributo [QueryString] name null
Se poi volessimo dare un nome diverso al parametro in querystring, sarà  sufficiente specificare il nome tra parentesi:

public IQueryable<Product> GetProducts([QueryString("n")]string name)

Ovvio, anche prima era possibile fare la stessa cosa ma certamente non con questa semplicità .

Andando avanti, ipotizziamo ora di voler filtrare i prodotti non più per nome ma per categoria e di aver predisposto allo scopo una DropDownList

public IQueryable<Product> GetProducts([Control] int? category)
{
       IQueryable<Product> query = dbECommerce.Products;
       if (category.HasValue)
       {
          query = query.Where(p => p.IDCategory == category);
       }
       return query;
}

Anche in questo caso abbiamo utilizzato un attributo ma questa volta l'attributo è [Control] category ID="category"

Questo è sufficiente per filtrare i prodotti sulla base della categoria selezionata nella DropDownList. Come vediamo il parametro è di tipo int nullable int Where

Ti consigliamo anche