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
- Riordinare le righe di una GridView di ASP.NET con jQuery
- Creazione di un alarm con suono personalizzato con Windows Phone 7.1
- Utilizzare la session affinity con Azure Container Apps
- Blue-green deployment con Azure Web App e DevOps
- Ed infine anche il calendario :)
- Configurare la diagnostica di Azure attraverso Visual Studio
- Recuperare la data di creazione di un tag tramite una pipeline YAML di Azure DevOps
- Microsoft Security Bulletin MS05-002
- .NET Core e dispositivi IoT
- Eseguire attività pianificate con Azure Container Jobs