L'idea consiste nel cambiare il colore della riga quando il puntatore del mouse vi passa sopra (mouseover) e riportarlo al colore originale quando il puntatore esce dall'area delimitata dalla riga (mouseout).
Per abilitare il mouseover sulle righe di una GridView e' sufficiente aggiungere nell'evento RowDataBound il seguente codice:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.RowIndex != EditIndex)
{
// Enable mouseover and mouseout events
e.Row.Attributes.Add("onmouseover", "this.realcolor = this.style.backgroundcolor; this.style.backgroundcolor='#336699;");
e.Row.Attributes.Add("onmouseout", "this.style.backgroundcolor = this.realcolor;");
}
}
}
In questo caso la procedura aggiunge per ogni riga della GridView due attributi: onmouseover e onmouseout. Il primo esegue il codice Javascript che salva il colore di background originale in una variabile chiamata realcolor e setta lo stile backgroundcolor al colore voluto. Il secondo esegue il codice Javascript che riporta lo stile di background al valore originale.
Lo stesso codice funziona su un Datagrid in ASP.NET 1.x, adattato usando eventi e proprieta' della DataGrid.