Un solo RowDataBound para varias GridView

Suele pasar que tengamos mas de una grilla (gridView en .NET 2.0) en una misma pagina Web y es incomodo, cuando se necesita que cada fila tenga un comportamiento, copiar y pegar código para cada grilla en el evento RowDataBound. Por ejemplo, si quiero a cada fila agregarle algo de Javascript para su validación o simplemente cambiar de color esa fila.

Este ejemplo muetra como enlazar un solo evento RowDataBound para las grillas que sean necesarias en un misma pagina. Esta hecho en  ASP.NET (VB.NET) 2.0

Una vez creado el proyecto y agregada las 2 GridView, simplemente en el Code Behind y nos paramos sobre una GridView.

foto0

Y luego en sus eventos vamos al RowDataBound:

foto01

Una vez que nos genero el código simplemente vamos hacia el handles (que esta al final) con comas vamos agregando todos los objetos que queremos que ese evento maneje:

foto1

Ahora bien, la pregunta es simple: ¿Como distingo una Grilla de Otra?, simple:

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

       If e.Row.RowType = DataControlRowType.DataRow Then 'DataRow Vale las row que tienen datos, de esta manera se saltea el header,el footer y el pager
           Dim idCelda As Integer
           Dim gvrow As GridViewRow = CType(e.Row.Cells(idCelda).NamingContainer, GridViewRow)
           Select Case CType(sender, GridView).ID
               Case GridView1.ID
                   gvrow.BackColor = Drawing.Color.Red
               Case GridView2.ID
                   gvrow.BackColor = Drawing.Color.LightGoldenrodYellow
           End Select
       End If

   End Sub

Bastante sencillo. Y así es como nos queda:

fotofinal

Adjunto el proyecto aqui

Saludos.

Anuncios

Un comentario sobre “Un solo RowDataBound para varias GridView

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s