viernes, 27 de agosto de 2010

ASP.NET - GridView con botones como columnas

Para agregar dentro de una grilla columnas de tipo commandfield es posible por medio del código o a través del smart tag del control.

Si lo hacemos desde el smart tag, debemos seleccionar del menú la opción editar columnas. Luego agregar columnas de tipo CommandField.

Si lo hacemos a través de la vista de código, dentro de la definición de las columnas de la grilla, agregamos el siguiente código por cada columna de tipo ButtonField:


<asp:buttonfield headertext="ver" commandName="Boton1" buttontype="Button"></asp:buttonfield>

De esta forma ya tenemos un ButtonField dentro de nuestra grilla. En este caso lo definí como un botón pero es posible definirlo como un link, botón o como una imágen cambiando esto en el button type de la definición anterior.

Una vez realizado el código dentro del archivo .aspx nos dirijimos al código (en mi caso vb) para darle funcionalidad a esta solución para saber cuando se presione el botón y el de que fila se presiona.

Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
Dim Indice As Int32 = Convert.ToInt32(e.CommandArgument)
Dim Row As GridViewRow = GridView1.Rows(Indice)

If e.CommandName = "Boton1" Then
' Acá detectamos que se presionó en botón y la fila, la devuelve el indice.
' Además el control Row lo agregué por si para ver que es posible guardar todos los items de la fila seleccionada en este.
End If
End Sub

Espero haya sido de utilidad.

Saludos,

Mariano Llarin.-

1 comentario:

  1. hola, si tengo una tabla cargadas con nombre y quiero que cuando le den un click a los botones abra un perfil

    ResponderEliminar