Foros del Web » Programando para Internet » ASPX (.net) »

Problemas al confirmar eliminacion en un gridview de asp.net 2.0

Estas en el tema de Problemas al confirmar eliminacion en un gridview de asp.net 2.0 en el foro de ASPX (.net) en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 24/09/2006, 05:05
 
Fecha de Ingreso: junio-2004
Mensajes: 2
Antigüedad: 19 años, 10 meses
Puntos: 0
Problemas al confirmar eliminacion en un gridview de asp.net 2.0

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
  #2 (permalink)  
Antiguo 26/09/2006, 09:46
 
Fecha de Ingreso: agosto-2006
Mensajes: 45
Antigüedad: 17 años, 8 meses
Puntos: 0
Una Recomendacion

Que tal

La verdad mas que una solución a tu problema es una racomendación, ultimamente los mensajes de Alerta para confirmacion o notificacion estan un poco descontinuados, Porque no utilizas una vista, la cual al pulsar tu imagebutton se active y de una forma mas presentable y sin salir del contexto de tu pagina pregunte si quieres o no eliminar.

El unico problema que tendrías esque saldrías de tu grid, pero eso se resuelve muy facil:

case "DeleteRecord":
this.ViewState["IdToDelete"]=e.CommandArgument.Tostring();
Multiview1.SetActiveView(viewDelete);
break;

se supone que en tu view viewDelete debes tener 2 Buttons, Accept y Cancel

en el evento del button Accept se ejecutaría la baja de tu registro,por ejemplo record.Id=this.ViewState["IdToDelete"]; y ya ese Id lo utilizas para identificar a tu registro.

Eliminas y luego vuelve a recargar tu grid mediante una funcion que te treiga nuevamente los registros de la Bd, si tienes dudas please contactame
  #3 (permalink)  
Antiguo 02/11/2006, 11:57
 
Fecha de Ingreso: octubre-2006
Mensajes: 53
Antigüedad: 17 años, 7 meses
Puntos: 1
problemita

Hola, para mi lo mas recomendable seria usar el evento RowDeleting y asi es mejor y luego en el template de tipo image o lo que sea colocar lo siguiente

<asp:ImageButton runat="server" ID="nombre" ImageUrl="ruta"
OnClientClick="return eliminar()" CommandName="delete"/>

asi te recomiendo que lo hagas y seria mucho mejor.

Cualquier consulta.

[email protected]
  #4 (permalink)  
Antiguo 19/04/2008, 15:34
 
Fecha de Ingreso: julio-2006
Mensajes: 2
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: problemita

Cita:
Iniciado por axpicasso Ver Mensaje
Hola, para mi lo mas recomendable seria usar el evento RowDeleting y asi es mejor y luego en el template de tipo image o lo que sea colocar lo siguiente

<asp:ImageButton runat="server" ID="nombre" ImageUrl="ruta"
OnClientClick="return eliminar()" CommandName="delete"/>

asi te recomiendo que lo hagas y seria mucho mejor.

Cualquier consulta.

[email protected]

Yo estoy utilizando Este Codigo :
<asp:ImageButton runat="server" ID="btELi" ImageUrl="../../delete.gif"
OnClientClick="return confirm('Seguro que Elimira los Datos')"
CommandName="Delete"/>
...
pero tengo un problema cuando lo corro el proyecto web, no me realiza la accion
del commandName solo refresca la pagina y quisiera saber cual podria ser el problema
por el cual no realiza la accion requerida.
Tengo otros proyecto en el cual no he tenido problema para realizar esta accion por o cual me parece raro...
  #5 (permalink)  
Antiguo 12/07/2008, 11:01
 
Fecha de Ingreso: julio-2008
Mensajes: 1
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problemas al confirmar eliminacion en un gridview de asp.net 2.0

Hola a todos, soy nuevo en este foro, espero ser util de una u otra forma.
yo en este poco tiempo q estoy aprendiendo asp.net lo hago de esta forma.

<asp:ImageButton ID="bt_Eliminar" CommandArgument='<%# Eval("Codigo_Emp") %>' CommandName="Eliminar" runat="server" ImageUrl="~/Admin/images/delete.png" ToolTip="Eliminar Registro"/>

y luego en el evento RowCommand del gridview.

Protected Sub gv_Languages_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs )
'Capturo el id del registro
dim id as string=e.CommandArgument
'llamo a la funcion eliminar Registro, y envio como parametro el id del registro
'la consulta sería algo asi:"delete from registro Codigo_Emp='"& id &"'"
fn_EliminarRegistro(id)

end sub

Espero sea util la respuesta, saludos a todos

Lima-Perú
  #6 (permalink)  
Antiguo 14/07/2008, 22:20
Avatar de rodri  
Fecha de Ingreso: febrero-2005
Mensajes: 406
Antigüedad: 19 años, 2 meses
Puntos: 2
Respuesta: Problemas al confirmar eliminacion en un gridview de asp.net 2.0

Hola, mas o menos dí una respuesta similar en este hilo
http://www.forosdelweb.com/f29/pregu...stro-c-605769/

Por otro lado, si quieres usar una imagen como link, podrías poner una imagen dentro de un linkbutton y funcionará igual

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 06:58.