Al DataGrid manca la possibilità, nativamente, di specificare effetti associati al passaggio del mouse su una riga della tabella generata.
Con un po' di pazienza e l'uso di Javascript, è possibile partire dallo script #554 e sostituire l'event handler associato all'evento ItemDataBound con uno script che aggiunga gli attributi onmouseover ed onmouseout, in modo che al passaggio sulla cella ed all'uscita della stessa gli stili possano essere cambiati in automatico:
private void myDataGrid_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
// ricavo lo stile
string cssClass = myDataGrid.ItemStyle.CssClass;
if (e.Item.ItemType == ListItemType.AlternatingItem)
cssClass = myDataGrid.AlternatingItemStyle.CssClass;
// cambio lo stile negli eventi associati al passaggio sulla cella
e.Item.Attributes.Add("onmouseover", "this.className='" + cssClass + "_hover';");
e.Item.Attributes.Add("onmouseout", "this.className='" + cssClass + "';");
}
}Vanno poi specificati per il DataGrid gli stili corrispondenti all'Item ed all'AlternatingItem, ad esempio in questo modo:
<ItemStyle CssClass = "tableItem" /> <AlternatingItemStyle CssClass = "tableAlternatingItem" />
Nel foglio di stile vanno definite due classi base, a cui aggiungere altre due classi con il suffisso _hover, che cambino il colore di sfondo della cella.
Ovviamente è possibile implementare queste modifiche creando un custom control, per poterle sfruttare all'interno di più pagine ed applicazioni.
Approfondimenti
#554 - Cambiare il colore di sfondo di una cella del DataGrid in base al suo valorehttps://www.aspitalia.com/liste/usag/script.aspx?ID=554
Per vedere lo script all'opera:
https://www.aspitalia.com/liste/usag/esempi.aspx?ID=697
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Accedere a risorse e immagini in Windows Store app di Windows 8
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Permettere il Drag-and-drop solo su zone predefinite con Silverlight 2.0
- Consumare dati binari in realtime lato client con ASP.NET Core SignalR
- Effetto turnstile su tutte le pagine con il Windows Phone Toolkit
- Personalizare l'icona e le funzionalità di un sito web per iOS e IE
- Caricamenti veloci da CDN e fallback locale con ASP.NET Core
- Utilizzare dati in formato XML in XAML
- Accedere a dati esposti con WebService con Silverlight 1.0


