none
columna de grilla no se colorea en el evento rowdatabound RRS feed

  • Pregunta

  • saludos, tengo este codigo para colorear la columna de un gridview de acuerdo a una condicion, y lo hace en todas las condiciones menos en esta 

     If dgvTramites.DataKeys(Convert.ToInt32(e.Row.RowIndex)).Item(11).ToString() = PARAENTREGA Then
                    '   e.Row.Cells(16).BackColor = Drawing.Color.YellowGreen
                    e.Row.Cells(18).BackColor = Drawing.Color.Purple
                End If

    veo  que entra al if y pasa por esa línea de codigo pero al final en el renderizado de la paina no veo el color asignado, a que se puede deber?

      Protected Sub dgvTramites_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles dgvTramites.RowDataBound
    
            If e.Row.RowType = DataControlRowType.DataRow Then
    
                If Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, "Dias").ToString()) <= 0 Then
                    If dgvTramites.DataKeys(Convert.ToInt32(e.Row.RowIndex)).Item(12).ToString() = True Then
                        e.Row.Cells(11).BackColor = Drawing.Color.White
                    Else
                        e.Row.Cells(11).BackColor = Drawing.Color.Red
                    End If
    
                ElseIf Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, "Dias").ToString()) > 0 And Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, "Dias").ToString()) <= 2 Then
                    e.Row.Cells(11).BackColor = Drawing.Color.Orange
                Else
                    e.Row.Cells(11).BackColor = Drawing.Color.SpringGreen
                End If
                If dgvTramites.DataKeys(Convert.ToInt32(e.Row.RowIndex)).Item(11).ToString() = PARAENTREGA Then
                    '   e.Row.Cells(16).BackColor = Drawing.Color.YellowGreen
                    e.Row.Cells(18).BackColor = Drawing.Color.Purple
                End If
            End If
        End Sub

    miércoles, 7 de octubre de 2015 14:02

Respuestas

  • hola

    que pasa si lo simplificas y usas

    Protected Sub dgvTramites_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles dgvTramites.RowDataBound
    
    	If e.Row.RowType = DataControlRowType.DataRow Then
    		e.Row.Cells(11).BackColor = Drawing.Color.Red
    	End If
    	
    End Sub

    en ese caso asigna el color ?



    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 7 de octubre de 2015 14:37

Todas las respuestas

  • Por si acaso, me imagino que cuando ejecutas tu código no esta comentando como en tu ejemplo verdad?

    Bueno, intenta con poner un punto de interrupción antes del if, y recupera en una variable x el valor de dgvTramites.DataKeys(Convert.ToInt32(e.Row.RowIndex)).Item(11).ToString(), y asi veras que valor en realidad te esta retornando y asi podras verificar por donde va la comparaqción del if.


    Roy Sillerico

    miércoles, 7 de octubre de 2015 14:19
  • hola

    que pasa si lo simplificas y usas

    Protected Sub dgvTramites_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles dgvTramites.RowDataBound
    
    	If e.Row.RowType = DataControlRowType.DataRow Then
    		e.Row.Cells(11).BackColor = Drawing.Color.Red
    	End If
    	
    End Sub

    en ese caso asigna el color ?



    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 7 de octubre de 2015 14:37
  • >>tengo este codigo para colorear la columna de un gridview de acuerdo a una condicion, y lo hace en todas las condiciones menos en esta

    [ASP.NET][GridView] - Como seleccionar una fila

    analiza el titulo "2a- DataKeyNames con campos Múltiples"

    alli explico como acceder a un datakeys con multiples valores

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 7 de octubre de 2015 14:40