ASP.NET - Problemas al confirmar eliminacion en un gridview

 
Vista:

Problemas al confirmar eliminacion en un gridview

Publicado por Carlos (3 intervenciones) el 24/09/2006 13:05:13
Buenas, tengo una aplicacion en vb.net 2.0 el problema lo tengo en un GridView donde tengo una columna que es un boton que al presionarlo me pide si deseo eliminar el registro con una funcion javascript y si le aprieto aceptar me ejecuta el postback y controlo en el evento rowcommand si el e.commandname es "Eliminar" que es como se llama el comando del grid y entonces ejecuto la instruccion SQL del delete, si aprieto cancelar no lo ejecuta por que no me lanza el postback.

Esto funciona perfectamente siempre y cuando el tipo del boton sea Link si el boton es image siempre me ejecuta el postback aunque le de a cancelar y claro me elimina el registro.

Alguna idea?

Os paso el codigo para que le pegueis un vistazo o por si le sirve a alguien.

Saludos y gracias anticipadas.

Funcion JavaScript
<script language="javascript" type="text/javascript">
function ConfirmDel()
{
return confirm('¿Esta seguro que desea eliminar este Registro?');
}
</script>

Aqui asigno al boton del grid la funcion Java
Protected Sub Grid_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles Grid.RowDataBound
Try
If e.Row.RowType <> ListItemType.Header And e.Row.RowType <> ListItemType.Footer Then
e.Row.Cells(4).Attributes.Add("onClick", "javascript:return ConfirmDel();")
End If
Catch ex As Exception

End Try
End Sub

Aqui Controlo el nombre del comando y ejecuto la sentencia
Protected Sub Grid_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles Grid.RowCommand
On Error Resume Next
Dim index As Integer = Convert.ToInt32(e.CommandArgument)
Dim row As GridViewRow = Grid.Rows(index)
Dim cn As New ADODB.Connection, TransaccionActiva As Boolean

Select Case e.CommandName
Case "Modificar"
'OTRO COMANDO QUE NO VIENE A CUENTO

Case "Eliminar"
On Error GoTo ControlError
cn.ConnectionString = ConexionAdoDB()
cn.Open()
TransaccionActiva = True
cn.BeginTrans()
cn.Execute("Delete Tabla1 WHERE Id=" & Server.HtmlDecode(row.Cells(0).Text))
cn.Execute("Delete Tabla2 WHERE Id=" & Server.HtmlDecode(row.Cells(0).Text))
If TransaccionActiva = True Then
cn.CommitTrans()
TransaccionActiva = False
End If
cn.Close()
cn = Nothing
On Error Resume Next
Cargar_Grid()
End Select
Exit Sub

ControlError:
If transaccionactiva = True Then
cn.RollbackTrans()
TransaccionActiva = False
Me.lb_Comentario.text = Err.Description
End If
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas al confirmar eliminacion en un gridvi

Publicado por x (445 intervenciones) el 25/09/2006 14:32:36
mmm no se si sea eso, pero la funcion javascript se la estas asignando a la celda y no al boton... ¿o me equivoco?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas al confirmar eliminacion en un gridvi

Publicado por Carlos (3 intervenciones) el 29/09/2006 10:08:34
no, el codigo java se le asigna al boton del grid, si el boton es de tipo link no hay problema, solo cambiando el tipo de boton sin cambiar nada de codigo, eso es lo mas curioso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas al confirmar eliminacion en un gridvi

Publicado por Damian (1 intervención) el 21/12/2006 15:16:13
Lo mejor que podes hacer es utilizar un boton link como vos describias y en el Texto escribir el codigo html para que te levante una imagen, esto seria asi:
<img src="../images/NombreImagen.gif" width="15" height="15" border="0">

Suerte
[email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas al confirmar eliminacion en un gridvi

Publicado por Carlos (3 intervenciones) el 26/12/2006 13:49:44
Perfecto lo que me comentas ha solucionado mi problema, ahora funciona correctamente con el código tal y como lo tengo.

Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar