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
- Disponibile parte del codice sorgente del Framework
- ListView è DataPager
- #922 - Utilizzare il metodo Page.SetFocus per impostare il focus all'interno della form
- #903 - Applicare le policy sui ruoli a SiteMap
- #914 - Custom Control con il supporto al databind per ASP.NET 2.0
- un Provider Custom per l'health monitoring
- #907 - Utilizzo di XmlSerializer con custom collection
- #937 - Personalizzare il contenuto del profilo con l'evento Personalize
- Membership API per SQL Server anche senza dbo
- #923 - Caricare dinamicamente un HttpModule
- Speciale ASP.NET security
- #930 - Propagare un evento al controllo padre nei Custom Control
Esprimi il tuo giudizio su questo script:
Per procedere devi essere autenticato.
si può anche decidere che la riga evidenziata ha sempre lo stesso stile, diciamo "rowHighlight'.In questo caso, sfruttando una variabile javascript ...
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.








Stampa
Snippet
Download 


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!
è possibile postare anche il testo del file css riguardante questo script? non riesco a trovare come impostare il foglio di style per colorare una ...
Continua »»» | Rispondi »»»