El objetivo de este articulo es demostrar como hacer uso de la funcionalidad de javascript para pedir la confirmación del usuario ante la eliminación de un registro en el control GridView.
Como se observara en la definición del GridView, la sección importante es la siguiente:
<asp:TemplateField ShowHeader="False"> <ItemTemplate> <asp:ImageButton ID="ImageButton1" runat="server" CausesValidation="False" CommandName="Delete" ImageUrl="~/image/delete.png" Text="Delete" OnClientClick="return confirm('Esta seguro que desea eliminar el registro?');" /> </ItemTemplate> </asp:TemplateField>
El truco esta en definir el atributo OnClientClick
[C#]
|
[VB.NET]
|
Hola que tal mi nombre es manu y soy de jujuy queria comunicarte que esta muy bueno tu blog y actualmente estoy leyendo todos tus articulos.
ResponderEliminarSoy programador .net pero estoy recien empezando y quiero avanzar mucho mas
Actualmente estoy aprendiendo nhibernate pero no se como poder incorporarlo a mi proyecto de windows forms. Si realizaste algun proyecto podrias comunicarlo
muchas gracias
hola
ResponderEliminarque bueno que sean de utiles los articulos, me alegro
Has revisado un post que realice en el año 2008, es el unico de ese año, alli explico como usar NHibernate.
No esta armado hasta la interfaz grafica sino que se queda en los test, pero puede ser util como guia para aprender a utilizar el framework de persistencia.
Ademas te recomiendo el foro
http://groups.google.com.ar/group/nhibernate-hispano
es ideal para poder hacer consultas
saludos
Hola Leandro.
ResponderEliminarnesecito tu ayuda para algo que parece simple pero para mi es complicado.
tengo un control Gridview que me jala alguna informacion de una tabla sql, lo que hice es aumentarle una columna y le puse templante un texbox para agregar un dato a la infomacion que ya me muetral el control gridview. pero ahora lo que quiro hacer es que toda la informacion del Gridview + los datos aumentados en el texbox se me graben en una tabla diferente al momento de presionar el boton grabar que esta añadido. Por favor requiero su ayuda gracias
hola msn
ResponderEliminarpodrias recorrer las filas del grid he insertar en la otra tabla
http://social.msdn.microsoft.com/Forums/es/netfxwebes/thread/a81c10f5-5ee5-4ad9-a6ce-f20a0638f1d1
esto si usas BoundField, o sea va directo al Cells[n].Text, si es un template usas el FindControl
http://social.msdn.microsoft.com/Forums/es-ES/vcses/thread/878411e4-bd2f-4cf8-942c-071a569e5481
http://social.msdn.microsoft.com/Forums/es/netfxwebes/thread/965ed9ba-7147-43d0-ae66-0765d8d9962d
saludos
Hola Leandro,
ResponderEliminarAntes que nada quería darte las gracias por los artículos que escribes que me están ayudando muchisimo.
Estoy utilizando tu código para mostrar mensaje de confirmación y funciona bien pero después de eliminar y al refrescar la página vuelve a entrar al GridView1_RowDeleting() e intenta eliminar nuevamente lo que tenga que eliminar, hay forma de evitar esto....
saludos
hola Alberto
ResponderEliminaral refrescar de que forma ?
porque si recargas con los botones del browser estos pueden ester realizando el postback de un evento ya lanzado, peor esto sucedera con cualquier evento, si seleccionas un boton de actualizar al refrescar tambien se lanzara, no es algo exclusivo de esta accion de eliminar
yo diria que lo valides, es la unica forma de solucionarlo, o sea si ingresa una segunda vez en el eliminar valida que ese id ya no exista y sino esta lo informas al usuario, como "el id:xx no se encuentra"
saludos
Hola,
ResponderEliminarGracias por responder y al refrescar me refería a recargar la pagina ([F5] en el navegador)...
... voy a hacer lo que me dices de validar que el id no exista.
saludos
Hola leandro, como estas
ResponderEliminarHace poco me encomendaron un trabajo en vbnet y me exigen que use javascript y el problema es que me cuesta adaptarme rapidamente a este lenguaje.
Lo que me estan pidiendo es tener un gridview (con informacion alojada en una BD access), una de las columnas es un codigo que me enlaza con una imagen, alojada en un servidor y tengo que mostrarla.... me podrias llegar a arientar? Desde ya muchas gracias!
hola nakiotio
ResponderEliminarpero para eso no necesitas javascript
podrias aplicar lo que comento aqui
[ASP.NET] GridView – Edición Empleados
saludos
Disculpa Leandro donde declaro el javascrip o que función tengo que definir para que ejecute la acción eliminar ya que al confirmar la eliminación del dato me marca error "La acción de eliminar no es compatible con el origen de datos 'SqlDataAvisos' a menos que se especifique DeleteCommand."
ResponderEliminarhola Luz
ResponderEliminarel javascript se define en el propio control ImageButton
aunque imagino quizas en tu caso no usas un template para implementar la accion de eliminar un registro, lo que no creo es que se pueda eliminar sin usar un template
ademas has validado el control SqlDataSource que tenga definido ese comand que alli menciona el error
SqlDataSource.DeleteCommand (Propiedad)
valida el ejemplo del link
saludos
Leandro, al utilizar el ImageButton con el CommandName = "Delete" se ejecuta la propiedad OnRowDeleting del GridView verdad? Pero si además tengo otros botones o imágenes para realizar otras tareas como por ejemplo un ButtonField con el CommandName = "Download" (al cual controlo mediante la propiedad OnRowCommand del GridView), porqué al dar clic en la imagen de eliminar me salta un error en la SUB que controla el OnRowCommand? Es que se ejecutan ambas sub (la de borrar y la de comandos)?
ResponderEliminarNo se si fui claro en el mensaje...
hola Sergio
ResponderEliminares que el comando Delete no solo lanza el evento OnRowDeleting sino que tambien es capturaro por el RowCommand
por eso en este ultimo deberias definir un switch o if que valide que comando esta ingresando y hacer o no algo
si en el RowCommand detectas que ingresa un "Delete", pasas de largo sin hacer nada y dejas que el OnRowDeleting que se deberia ejecutar a continuacion tome el control
saludos
Gracias Leandro. Anduvo bárbaro!
ResponderEliminarSolucionado!!! Gracias Leandro.
ResponderEliminarhola Pablo
ResponderEliminarde casualidad por medio de javascript o jquery estas cambiando algun control de asp.net ? porque ese error suele producirse cuando los datos de un control cambian y dejan de ser iguales a los que tiene el viewstate
ademas estas seguro que es el codigo de uan simpel confirmacion en el grid lo que lo genera ? porque me parece muy raro que sea esta la causa
digo si quitas la validacion y haces que se elimine directo no sucede este error que mencionas?
saludos
Como sabes a que fila hizo click?
ResponderEliminarSi uso un commandfield ese dato me llega en el e.CommandArgument, si lo hago como lo explicas aqui, de donde obtengo el dato?
hola Ellery
ResponderEliminarpero alli estamos trabjando con javascript en el cliente
si quieres obtener informacion vas a tener que usar el "this" para obtener el boton que lanza la accion y luego de este usar el parent() para obtener la celda y el parent() para obtrener el tr, y de esa forma luego acceder a otra celda y tomar el valor
aqui
[ASP.NET] - GridView sumar columnas con jquery
realizo algo como eso en donde tomo la info contextual, una tecnica como esa deberias aplicar
saludos
Hola leandro muy buenos tus post, esto es justo lo que necesito y queria saber si podrias subir de nuevo el archivo ya que no esta disponible
ResponderEliminarMuchas gracias por la ayuda!
ResponderEliminarHola.. como vas.
ResponderEliminarInteresante tu post pero deberías permitir descargar los ejemplos.
Exitos.
La verdad que Leandro, sos un maestro. Gracias a vos pude pasar del querer hacer a poder hacer. Muchas gracias por el desinteresado aporte que haces a todos los que buscamos aprender mas de este lenguaje
ResponderEliminar