ATTENZIONE: Questo sito impiega diversi tipi di cookies. Alla pagina MAGGIORI INFORMAZIONI è possibile avere informazioni aggiuntive. Cliccando su ACCETTO o continuando a navigare sul sito acconsenti al loro utilizzo.
<febbraio 2023>
lunmarmergiovensabdom
303112345
6789101112
13141516171819
20212223242526
272812345
6789101112
Immagini  

ASP.NET GridView RowDataBound event

Gestire l'evento RowDataBound di una GridView può essere molto comodo per svariati motivi, come ad esempio cambiare il colore di sfondo di una particolare cella, calcolare dei totali/subtotali con delle politiche personalizzate, ecc.

L'evento scatta al Binding della singola riga, e avviene prima del disegno della riga stessa.
Il modo corretto per recuperare i dati della riga sulla quale cambia a seconda del provider dei dati della griglia

  • Caso in cui la griglia è in binding con un DataSource di tipo Object
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        //Checking the RowType of the Row   
        if(e.Row.RowType==DataControlRowType.DataRow)   
        {
            MYTYPE myRow = (MYTYPE)e.Row.DataItem;
            MYTOTAL += myRow.VALUE;
        }   
    }

  • Altri casi

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)   
{   
    //Checking the RowType of the Row   
    if(e.Row.RowType==DataControlRowType.DataRow)   
    {   
        if(Convert.ToInt32(e.Row.Cells[3].Text)<10000)   
        {   
            e.Row.BackColor = Color.Cyan;   
        }   
    }   
}   

Nel primo caso abbiamo accesso diretto alle proprietà dell'oggetto, previo opportuno cast con e.Row.DataItem, mentre nel secondo caso abbiamo accesso ai valori presenti nelle varie colonne della tabella con e.Row.Cells[3].Text, pertanto dobbiamo ricordarci le posizioni dei campi nella griglia.
Ecco un altro caso che dovrebbe farci sempre scegliere la modalità di lavoro ad "oggetti"!

Notifiche