Estimados,
tengo un problema que me esta sacando de mis casillas:
El problema es que tengo un datagrid llenado desde la base de datos y que tiene un formato parecido a este:
ID - NOMBRE - COLOR(*)
1 - xxxxxxxx - BLANCO
1 - xxxxxxxx - BLANCO
1 - xxxxxxxx - BLANCO
2 - yyyyyyyy - PLOMO
2 - yyyyyyyy - PLOMO
3 - zzzzzzzz - BLANCO
3 - zzzzzzzz - BLANCO
(*)Ejemplo de los colores que debe tener la fila
Lo que tengo que hacer es pintar el datagrid con los colores alternados (ejemplo *)
Al hacerlo de forma manual (indicarle que tal celda de la grilla sea igual a x valor) funciona, al igual que cuando tengo 2 datos en distintos en la grilla.. pero el problema es que cuando tengo mas de 2, se hace el cambio del color pero queda de la siguiente forma
ID - NOMBRE - COLOR(*)
1 - xxxxxxxx - BLANCO
1 - xxxxxxxx - BLANCO
1 - xxxxxxxx - BLANCO
2 - yyyyyyyy - PLOMO
2 - yyyyyyyy - PLOMO
3 - zzzzzzzz - PLOMO
3 - zzzzzzzz - PLOMO
Agrego el cod que tengo puesto hasta ahora en el itemdataboud
Código:
if (e.Item.ItemType == ListItemType.AlternatingItem ||
e.Item.ItemType == ListItemType.Item)
{
if (sRutGrilla == "" )
{
sRutGrilla = e.Item.Cells[2].Text;
e.Item.BackColor = System.Drawing.Color.FromArgb(247, 246, 243);
e.Item.ForeColor = System.Drawing.Color.FromArgb(51, 51, 51);
}
else if (e.Item.Cells[2].Text == sRutGrilla)
{
e.Item.BackColor = System.Drawing.Color.FromArgb(247, 246, 243);
e.Item.ForeColor = System.Drawing.Color.FromArgb(51, 51, 51);
}
else
{
e.Item.BackColor = System.Drawing.Color.White;
e.Item.ForeColor = System.Drawing.Color.FromArgb(40, 71, 117);
}
}
Gracias de antemano
RESPUESTA
Código:
if (e.Item.ItemType == ListItemType.AlternatingItem ||
e.Item.ItemType == ListItemType.Item)
{
if (sRutGrilla == "")
{
bGrilla = true;
e.Item.BackColor = System.Drawing.Color.FromArgb(247, 246, 243);
e.Item.ForeColor = System.Drawing.Color.FromArgb(51, 51, 51);
}
else if (e.Item.Cells[2].Text == sRutGrilla)
{
if (bGrilla == true)
{
e.Item.BackColor = System.Drawing.Color.FromArgb(247, 246, 243);
e.Item.ForeColor = System.Drawing.Color.FromArgb(51, 51, 51);
}
else
{
e.Item.BackColor = System.Drawing.Color.White;
e.Item.ForeColor = System.Drawing.Color.FromArgb(40, 71, 117);
}
}
else
{
if (bGrilla == true)
{
bGrilla = false;
e.Item.BackColor = System.Drawing.Color.White;
e.Item.ForeColor = System.Drawing.Color.FromArgb(40, 71, 117);
}
else
{
bGrilla = true;
e.Item.BackColor = System.Drawing.Color.FromArgb(247, 246, 243);
e.Item.ForeColor = System.Drawing.Color.FromArgb(51, 51, 51); }
}
sRutGrilla = e.Item.Cells[2].Text;
}
...