mercoledì 10 febbraio 2010

OnRowDataBound

Le girdview hanno qualche piccola potenzialità nascosta.

Questo evento si scatena subito dopo aver invocato il DataBind() che ricordiamo essere l'associazione fra i dati e la gridview.
L'intercettazione dell' OnRowDataBound consente parecchie attività sfiziose.

L'evento è un GridViewRowEventHandler e i GridViewRowEventArgs sono davvero tanti.


System.Data.DataRowView dataValue = (System.Data.DataRowView)e.Row.DataItem;

if (dataValue != null) // nel caso dell'intestazione è NULL
{
if (dataValue.Row.ItemArray[_VerifyDeleted].ToString().ToLower() == "true")
{
e.Row.CssClass = "rL";
}
}

In questo caso specifico cambio lo stile di una Row se trovo un valore in un campo della dataTable ...

dataValue
(vista o presentazione dei dati) la riga non è ancora stata renderizzata.
dataValue.Row.ItemArray
(dati fisico o record rappresentato come Item Array]
e.Row
(riga che sta per essere renderizzata)

Il mio consiglio è di usare una gridview gestita a pagine ... con un quantitativo di righe più o meno basso.
Nell ordine dei 25 / 30 elementi, questo perchè OnRowDataBound è generato per ogni riga..
va da se che fare IO su 20 elementi ha un costo .. su 100 costa un bel po di più.

In questo evento ha delle buone potenzialità, è in qui che si possono aggiungere controlli e handler sui
controlli (tipo Button + Click, CheckBox ... e via e via) il limite rimane la creatività ed eventuali tempi di Render

Nessun commento: