Jag tänkte göra en funktion på min datagrid där när man drar musen över en rad så blir den markerad. Eftersom du har varannan vit och grå gissar jag att du använt ItemTemplate och AlternatingItemTemplate i din DataGrid. Men hur får jag den färgen raden har. Det var därför jag nämnde Item och AlternateItem. Jo jag förstod det. Men jag använder AutoFormat på datagriden så jag sätter inte färgen själv. Och sen kan användaren själv ställa in vilken färg gridden ska ha. Så jag undrade om man kunde läsa av vilken färg raden hade så kunde man sätta den färgen på onmouseout och en annan på mouseover.DataGrid onmouseout
<code>
private void Grid1_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==ListItemType.AlternatingItem)
{
e.Item.Attributes.Add("onmouseover", "this.style.backgroundColor='lightblue'");
e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='white'");
}
}
</code>
Detta funkar perfekt. Problemet jag har är att jag inte vill att den ska få vit färg när man lämnar raden utan den färgen som raden hade innan. Jag använder mig av autoformat på datagridden så jag har varannan rad grå och varannan vit. Nu när jag lämnar en grå rad bli den ju självklart vit och det vill jag inte. Kan man på nåogt sätt få färgen på den raden man är på?Sv: DataGrid onmouseout
Om det är så kan du göra likadant i din DataBound event.
Din If-fråga:
<code>
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==ListItemType.AlternatingItem)
</code>
kan delas upp. Om det är en Item så sätter du white, om det är en AlternatingItem sätter du grå.Sv: DataGrid onmouseout
e.Item.BackgroundColor verkar inte funka.
jag vill ju få ut rätt färg så jag ska sätta den på onmouseout sen. Om jag inte vet att den är vit och grå dvs.Sv: DataGrid onmouseout
Hur ser ditt datagrid ut? Om dina ItemTemplates har vit bakgrund och AlternateItem har grå så får du ju rätt färg om du använder IF-satsen. När du kommer in i DataBound delar du på IF-satsen.
<code>
if(e.Item.ItemType == ListItemType.Item)
{
e.Item.Attributes.Add("onmouseover", "this.style.backgroundColor='lightblue'");
e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='white'");
} else if (e.Item.ItemType ==ListItemType.AlternatingItem)
{
e.Item.Attributes.Add("onmouseover", "this.style.backgroundColor='lightblue'");
e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='gray'");
}
</code>Sv: DataGrid onmouseout
Sorry för att jag förklarade så dåligt