#697 - Aggiungere al DataGrid un effetto al passaggio del mouse

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.

Per approfondimenti si veda:
#554 - Cambiare il colore di sfondo di una cella del DataGrid in base al suo valore
http://www.aspitalia.com/liste/usag/script.aspx?ID=554

Per vedere lo script all'opera:
http://www.aspitalia.com/liste/usag/esempi.aspx?ID=697


Approfondimenti

Commenti

Esprimi il tuo giudizio su questo script:

Per procedere devi essere autenticato.

maxtoni scrive:
#697 - Aggiungere al DataGrid un effetto al passaggio del mouse

è possibile postare anche il testo del file css riguardante questo script? non riesco a trovare come impostare il foglio di style per colorare una ...
giovedì 21 giugno 2007 | 1 risposta
dominik scrive:
#697 - Aggiungere al DataGrid un effetto al passaggio del mouse

si può anche decidere che la riga evidenziata ha sempre lo stesso stile, diciamo "rowHighlight'.In questo caso, sfruttando una variabile javascript ...
sabato 30 aprile 2005

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.




IN EVIDENZA
MISC