Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 1.0/1.1
Cambio colore record datagrid al passaggio mouse
venerdì 12 settembre 2003 - 11.08
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Nicola
Profilo
| Senior Member
362
messaggi | Data Invio:
ven 12 set 2003 - 11:08
Qualè la proprietà da settare al datagrid
per fare in modo che al passaggio del mouse
i vari record possano cambiare il colore.
Praticamente come i datagrid del sito dotnethell...
al passaggio i vari record diventano azzurrini...
grazie
ciaoooo
Admin
Profilo
| Junior Member
160
messaggi | Data Invio:
ven 12 set 2003 - 12:28
prova a guardare il source html di questa pagina... (Menu Visualizza->HTML)
è un javascript. Non esiste una proprietà specifica di DataGrid, è una cosa che ha implementando David, integrando ASP.NET con del codice client in javascript.
Nota:
onmouseover="Ov(this)" onmouseout="Ou(this)"
Credo che basti attaccarsi all'itemdatabound di datagrid, e fare qualcosa del genere:
private void CategoriesList_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
{
e.Item.Attributes.Add("onmouseover", "Ov(this)");
e.Item.Attributes.Add("onmouseout", "Ou(this)");
}
}
Ciao !
Stefano
Nicola
Profilo
| Senior Member
362
messaggi | Data Invio:
ven 12 set 2003 - 17:05
Non ho capito bene...
il richiamo nel datagrid... e il VB
GRAZIE
NB
Admin
Profilo
| Junior Member
160
messaggi | Data Invio:
ven 12 set 2003 - 17:13
vedo di spiegarmi meglio...
Il codice che ti ho postato non è in VB.NET, ma in C#.
Te lo traduco al volo il VB.NET:
private sub MyDataGrid_ItemDataBound(sender as Object, e RepeaterItemEventArgs) Handles MyDataGrid.ItemDataBound
if ((e.Item.ItemType = ListItemType.Item) or (e.Item.ItemType = ListItemType.AlternatingItem))
e.Item.Attributes.Add("onmouseover", "Ov(this)");
e.Item.Attributes.Add("onmouseout", "Ou(this)");
end if
end sub
Allora... la routine MyDataGrid_ItemDataBound è un handler per l'evento ItemDataBound di MyDataGrid. Questo evento viene generato ad ogni riga che sta per essere creata nella datagrid in questione.
"Attaccarti" a questo evento ti permetterà di eseguire del codice per aggiungere degli attributi alla riga creata dal datagrid. La if che vedi serve a controllare che il codice venga eseguito soltanto per le righe di dati, e non quindi anche per l'header e footer della griglia.
Spero di essermi spiegato bene, e di esserti stato d'aiuto.
Ciao!
Stefano Giannone [MCP .NET]
Nicola
Profilo
| Senior Member
362
messaggi | Data Invio:
ven 12 set 2003 - 17:37
ok adesso la sub devo legarla al mio datagrid...
quelle che ho implementato per la gestione dei vari recordi sono cosi:
OnUpdateCommand="MioDatagrid_UpdateCommand"
adesso quella del cambio colore?
................="MioDatagrid_ItemDataBound"
nel tag principale del mio datagrid?
<asp:DataGrid id="MioDatagrid" ...................
ciao NB
Admin
Profilo
| Junior Member
160
messaggi | Data Invio:
ven 12 set 2003 - 17:55
dovrebbe bastarti copiare ed incollare nel tuo code-behind la mia routine...
E quindi sostituire MyDataGrid con il nome della tua datagrid.
Questo da per scontato che nel code-behind ci sia dichiarata la variabile a livello di classe per la datagrid (lo fa automaticamente VS.NET quando aggiungi il controllo alla web form).
Ti consiglio di dare più spesso un'occhiata alla documentazione del .net framework che dovresti avere installata sulla tua macchina se hai installato l'SDK.
A volte basta cercare lì, e trovi esempi e reference sui vari controlli e non solo.
Ciao, alla prossima
Stefano Giannone [MCP .NET]
Nicola
Profilo
| Senior Member
362
messaggi | Data Invio:
ven 12 set 2003 - 18:03
Messaggio di errore del compilatore: BC30529:
Se un parametro è tipizzato, allora devono esserlo tutti i parametri.
Mi esce questo errore!
ciao Nicola
Admin
Profilo
| Junior Member
160
messaggi | Data Invio:
ven 12 set 2003 - 18:07
sostituisci la dichiarazione della routine, con questa:
private sub MyDataGrid_ItemDataBound(sender as Object, e as DataGridItemEventArgs)
Mio errore... avevo dimenticato la AS, e lasciato RepeaterItemEventArgs anzichè DataGridItemEventArgs.
Ciao
Stefano Giannone [MCP .NET]
Nicola
Profilo
| Senior Member
362
messaggi | Data Invio:
ven 12 set 2003 - 18:12
quasi ci siamo
errore di carattere:
e.Item.Attributes.Add("onmouseover", "Ov(this)");
graziee
Admin
Profilo
| Junior Member
160
messaggi | Data Invio:
ven 12 set 2003 - 18:22
sì, infatti... basta togliere il ";" finale...
Ciao
Stefano Giannone [MCP .NET]
Nicola
Profilo
| Senior Member
362
messaggi | Data Invio:
ven 12 set 2003 - 18:29
ok! il datagrid non fa niente!
le celle non cambiano colore...
ma nell'oggetto datagrid nel code HTML non faccio niente?
Admin
Profilo
| Junior Member
160
messaggi | Data Invio:
ven 12 set 2003 - 18:38
guarda l'html di questa pagina e guarda l'html della tua pagina... vedi se manca qualcosa. Secondo me manca il javascript, che non ti sei copiato.
Controlla se nelle <tr> della datagrid ci sono le 2 chiamate allo script client (onmouseover, etc.)
Ciao
Stefano Giannone
Nicola
Profilo
| Senior Member
362
messaggi | Data Invio:
ven 12 set 2003 - 18:58
mi cambia colore tutta la tr della tabella html dove sta il datagrid... e non il singolo record del mio datagrid....
che casino!
Nicola
Profilo
| Senior Member
362
messaggi | Data Invio:
lun 15 set 2003 - 10:19
il cambio colore devo richiamarlo non nel <tr> ma nei vari record del datagrid
caricati dinamicamente, mettendolo nel <tr> mi si colora tutto il tr che racchiude TUTTO il mio datagrid... help
grazie per il vostro cortese aiuto
ciao Nicola
Admin
Profilo
| Junior Member
160
messaggi | Data Invio:
lun 15 set 2003 - 10:58
Nicola,
probabilmente non riesco a farmi capire... ovviamente lo script non va messo nella <tr> in cui è contenuta la datagrid... questo mi sembra scontato.
Lo script dovrà andare a finire nelle <tr> generate in output dal controllo DataGrid, in base ai dati che gli vengono passati come DataSource... da questo ne deriva appunto il discorso che ti facevo del:
e.Item.Attributes.Add("onmouseover", "Ov(this)")
che serve appunto ad aggiungere un nuovo attributo alla riga appena generata.
Ciao
Stefano Giannone [MCP .NET]
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !