Foros del Web » Programación para mayores de 30 ;) » .NET »

Delete en una GridView

Estas en el tema de Delete en una GridView en el foro de .NET en Foros del Web. Hola, Estoy teniendo algun problema con una gridview. Tengo una gridview que tiene un buttonfield del tipo Image, el CommandName del buttonfield es delete. Para ...
  #1 (permalink)  
Antiguo 03/09/2006, 18:36
 
Fecha de Ingreso: julio-2006
Mensajes: 4
Antigüedad: 18 años, 4 meses
Puntos: 0
Delete en una GridView

Hola,
Estoy teniendo algun problema con una gridview.
Tengo una gridview que tiene un buttonfield del tipo Image, el CommandName del buttonfield es delete. Para borrar el registro implementé el evento RowDeleting de la grilla, pero quiero agregar el javascript confirm antes de borrar el registro.
La forma que encontre de agregar el javascript a la imagen fue en el evento RowDataBound de la grilla.
if(e.Row.RowType == DataControlRowType.DataRow)
{
ImageButton idel = (ImageButton)e.Row.Cells[2].Controls[0];
idel.Attributes.Add("onclick", "javascript:return confirm('Confirma eliminar el registro?!')");
}

El problema está en que con esto no se ejecuta el evento RowDeleting, y muestra bien el pop up con el mensaje del confirm pero no borra el registro.
Si elimino el codigo del evento RowDataBound, el registro es eliminado correctamente.

Alguna sugerencia? Alguien ya se encontró con este problema? Cómo lo solucionó?
Me parece que hay algo que no estoy viendo..
Gracias
Saludos
Natalia
  #2 (permalink)  
Antiguo 04/09/2006, 20:50
 
Fecha de Ingreso: agosto-2006
Ubicación: en lima peru
Mensajes: 184
Antigüedad: 18 años, 3 meses
Puntos: 0
estas trabajando con datasets?? pues si es asi lo que tienes que hacer es crear un table adapter y usar el wizard del visual 2005 para generar un procedimiento almacenado de eliminación e invocarlo desde el evento de la grilla. saludos.
  #3 (permalink)  
Antiguo 05/09/2006, 12:09
Avatar de rodri  
Fecha de Ingreso: febrero-2005
Mensajes: 406
Antigüedad: 19 años, 9 meses
Puntos: 2
Bueno, la solución que usé es la siguiente:

Definir un DeleteCommand para la eliminación de la fila y poder manejar el evento RowDeleting. Convertir esta columna en un template después de haber definido al comando como tipo imagen. Luego, abrir el template que hicimos y escribir en la propiedad OnClientClick lo siguiente:

return confirm('¿Confirma eliminar el registro?)

y listo se disparará el confirm cada vez que apretes el boton (o imagen) de eliminación y ejecutarás luego el código que quieras en el servidor si la respuesta sea Aceptar.

La solución que planteas puedes también manejarla desde el Evento OnRowCommand y preguntar si el nombre del elemento que disparó este evento (que en realidad siempre se ejecuta al hacer postback en una GridView) es del nombre "delete" (o como hayas definido en tu commandName) y ejecutar el código. Ahora en relación al javascript deberías ejecutar tu confirm en la propiedad OnClientClick de tu imagen.

Espero que te haya servido.

saludos.
__________________
0.o Rodri
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:24.