Aggiungere al DataGrid un effetto al passaggio del mouse

di Daniele Bochicchio, in ASP.NET, DataGrid, System.Data,

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 valore
https://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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

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