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:
Gracias de antemanoif (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); } }
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; }