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.
Y luego en sus eventos vamos al RowDataBound:
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:
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:
Adjunto el proyecto aqui
Saludos.


Marzo 17, 2009 a las 8:18 pm |
excelente, hizo lo que queria, MIL GRACIAS!!!!