Páginas

miércoles, 16 de mayo de 2012

GridView.RowCommand : Obtener un valor al ejecutar un comando en el gridview

La idea es tener un botón dentro del gridview y que cuando se le haga clic al botón se seleccione el valor de una de las columnas y se ejecute la acción.

En la propiedad command del boton se le puede especificar el nombre que quieras al comando y luego llamarlo de la siguiente manera:


void CustomersGridView_RowCommand(Object sender, GridViewCommandEventArgs e)
  {
    if(e.CommandName=="NombreComando")
    {
      // Selecciona el indice de la fila del boton en el que se hizo clic
      int index = Convert.ToInt32(e.CommandArgument);
            
      // retorna el row en que se hizo clic
      GridViewRow row = CustomersGridView.Rows[index];
            
      // asigna el valor de la celda de la columna 2 y la fila en que se hizo clic  
      string item = Server.HtmlDecode(row.Cells[2].Text);
        
    }
  }

Existen unos comandos ya predeterminados integrados al control Gridview que son:
Valor de CommandNameDescripción
"Cancel"
Cancela una operación de edición y devuelve el control GridView al modo de sólo lectura. Provoca el evento RowCancelingEdit.
"Delete"
Elimina el registro actual. Provoca los eventos RowDeleting y RowDeleted.
"Edit"
Pone el registro actual en modo de edición. Provoca el evento RowEditing.
"Page"
Realiza una operación de paginación. Establece la propiedad CommandArgument del botón en "First", "Last", "Next", "Prev" o en un número de página para especificar el tipo de operación de paginación que se va a realizar. Provoca los eventos PageIndexChanging y PageIndexChanged.
"Select"
Selecciona el registro actual. Provoca los eventos SelectedIndexChanging y SelectedIndexChanged.
"Sort"
Ordena el control GridView. Provoca los eventos Sorting y Sorted.
"Update"
Actualiza el registro actual en el origen de datos. Provoca los eventos RowUpdating y RowUpdated.

fuente: http://msdn.microsoft.com/es-es/library/system.web.ui.webcontrols.gridview.rowcommand(v=vs.80).aspx

3 comentarios:

  1. Nice post. I went through the post I found it very informative and useful. Thanks for sharing.

    ResponderEliminar
  2. Para tomar el datakey value del row donde se hizo clic

    int codigo = Convert.ToInt32(Gridview1.DataKeys[index].Value);

    ResponderEliminar