martes, 27 de abril de 2010

Añadir evento onclick sobre las celdas de un gridview

Para añadir un evento onclick a las celdas de un gridview nos podría valer este código k se muestra a continuación.

void gvEjecuciones_RowDataBound(object sender, GridViewRowEventArgs e)
{
try
{
foreach (GridViewRow row in gvEjecuciones.Rows)
{
TextBox txtTipoEstado = (TextBox)row.FindControl("txtEstado");
Image imgTipoEstado = (Image)row.FindControl("imgEstado");
// Si es una fila de datos
if (e.Row.RowType == DataControlRowType.DataRow)
{
// añade al evento onclick la acción de RowComman seleccionar con el valor del control del tipo label llamado lblID
e.Row.Attributes.Add("onclick", Page.ClientScript.GetPostBackEventReference((GridView)sender, "Seleccionar$" + ((Label)(e.Row.FindControl("lblIdPrueba"))).Text));
e.Row.Style.Add("cursor", "hand");

if (((TextBox)(e.Row.FindControl("txtCodGrupoPruebas"))).Text == codGrupoPruebas.ToString())
{
e.Row.Attributes.Add("Style", "background-image: url(Images/img_35.png);");
}
}
}
}

Este método hace dos cosas, genera un evento onclick y captura la fila pulsada previamente y le pone una imagen como background

Para controlar el onclick solo habría k capturar el rowcommand, algo así:

protected void gvEjecuciones_RowCommand(object sender, GridViewCommandEventArgs e)
{
try
{
Filtrar();
switch (e.CommandName)
{
case "Seleccionar":
codGrupoPruebas = int.Parse(e.CommandArgument.ToString());
cargarGrid();
Filtrar();
break;
}
}
catch (Exception ex)
{
Response.Redirect("Error.aspx?Mensaje=" + ex.Message.Replace("\n", " "));
}
}

No hay comentarios:

Publicar un comentario