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

Personalizar filas gridview

Estas en el tema de Personalizar filas gridview en el foro de ASPX (.net) en Foros del Web. Buenas, tengo un gridview en el cargo todos los pedidos de este mes. En la tabla pedidos tengo un campo Estado (tipo boolean). Si está ...
  #1 (permalink)  
Antiguo 26/04/2010, 04:49
Avatar de Atorort  
Fecha de Ingreso: abril-2010
Ubicación: Valencia
Mensajes: 127
Antigüedad: 14 años
Puntos: 0
Personalizar filas gridview

Buenas, tengo un gridview en el cargo todos los pedidos de este mes.

En la tabla pedidos tengo un campo Estado (tipo boolean).

Si está en True esque el pedido ya se ha servido, si es False está pendiente.

Como puedo 'colorear' de Verde los pedidos servidos y de Rojo los pendientes??

Sé que es una pregunta un tanto absurda pero no consigo decirle que filas quiero de un color y cuales de otro.

Gracias!

Código ASP:
Ver original
  1. Sub Pedidos()
  2.         Dim DataSetPedidos As New DataSet
  3.         Dim AdaptadorPedidos As SqlDataAdapter
  4.         Dim CadenaSQLPedidos As String
  5.         Dim TablaPedidos As New DataTable
  6.  
  7.         Dim idPedido As String = Me.gvpedido.SelectedDataKey("id_pedido")
  8.  
  9.         CadenaSQLPedidos = "SELECT id_pedido, pedido, realizado" & _
  10.                             "FROM Pedidos " & _
  11.                             "WHERE id_pedido = " & idPedido
  12.  
  13.         'MONTAMOS LA TABLA CON LOS PEDIDOS
  14.         Try
  15.             AdaptadorPedidos = New SqlDataAdapter(CadenaSQLPedidos , conn)
  16.             AdaptadorPedidos .Fill(DataSetPedidos, "Pedidos")
  17.  
  18.             TablaPedidos = DataSetPedidos .Tables("Pedidos")
  19.  
  20.         Catch ex As Exception
  21.  
  22.         End Try
  23.  
  24.         For i As Integer = 0 To TablaPedidos .Rows.Count - 1
  25.             txtpedido.Text = TablaPedidos .Rows(i).Item("texto")
  26.            
  27.          [B]If TablaPedidos.Rows(i).Item("realizado") = "True" Then
  28.                 gvpedido.RowStyle.BackColor = Drawing.Color.GreenYellow
  29.             Else
  30.                 gvpedido.RowStyle.BackColor = Drawing.Color.Red
  31.             End If [/B]
  32.  
  33.             gvpedido.DataBind()    
  34.         Next
  35.  
  36.     End Sub

Solo me saca o todos verdes, o todos rojos...

Última edición por Atorort; 26/04/2010 a las 05:00
  #2 (permalink)  
Antiguo 26/04/2010, 07:09
 
Fecha de Ingreso: enero-2008
Ubicación: Santiago
Mensajes: 49
Antigüedad: 16 años, 3 meses
Puntos: 4
Respuesta: Personalizar filas gridview

Hola, tienes que programar el evento RowDataBound de tu gridview.
Seria algo como esto:

Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound

If e.Row.RowType = DataControlRowType.DataRow Then
If DataBinder.Eval(e.Row.DataItem, "TuCampo") = "TuCondicion" Then
'e.Row.BackColor = Color.Green
End If
End If


Saludos, espero que te sirva
  #3 (permalink)  
Antiguo 26/04/2010, 07:12
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Personalizar filas gridview

Hola, tenes que hacerlo en el evento DataBound......
Elimina el For i as...... y hace el DataBind solamente en tu evento Pedidos.

Protected Sub gvpedido_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvpedido.RowDataBound

If (e.Row.RowType <> ListItemType.Header And e.Row.RowType <> ListItemType.Pager) Then

If e.Row.Cells(1).Text = "True" Then
e.Row.BackColor = Color.GreenYellow
Else
e.Row.BackColor = Color.Red
End If

End If

End Sub


Saludos.
__________________
Marcelo Davila.

:. En Ignorante te conviertes al no preguntar, el que pregunta se nutre... :.
  #4 (permalink)  
Antiguo 26/04/2010, 17:02
Avatar de Atorort  
Fecha de Ingreso: abril-2010
Ubicación: Valencia
Mensajes: 127
Antigüedad: 14 años
Puntos: 0
Respuesta: Personalizar filas gridview

Mañana a primera hora lo pruebo.

Gracias por la respuesta !

Etiquetas: filas, gridview, personalizar, aspx
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 04:45.