Foros del Web » Programando para Internet » ASPX (.net) »

[SOLUCIONADO]Colorear Datagrid en webform

Estas en el tema de [SOLUCIONADO]Colorear Datagrid en webform en el foro de ASPX (.net) en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 18/03/2009, 14:09
 
Fecha de Ingreso: mayo-2008
Ubicación: Chile
Mensajes: 14
Antigüedad: 16 años
Puntos: 0
[SOLUCIONADO]Colorear Datagrid en webform

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;
        }
...

Última edición por dolguin; 18/03/2009 a las 15:56 Razón: tema solucionado
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:45.