Desarrollo de sw
Cuando asignamos en el Gridview un comando de eliminación para que se encargue "automáticamente" de conversar con el proveedor de datosy enviarle el comando de Delete (o disparar el evento correcto) en ASP.NET agregamos una columna del tipo comando...
Al agregarlo nos queda algo así:
Podemos modificarlo al tipo de "botón",sea enlace, imagen o "botón"
la pregunta es...
¿Como agregar un evento de JS para que confirme la eliminación?
El famoso:
Necesitamos asignarle un script del lado del cliente (esdecir javascript), pero no tenemos disponible la propiedad OnClientScript que nos sirve para los botones
(lean este articulo Evitar el postback al pulsar un botón en ASP.NET - de José M. Aguilar)Bueno si queremos seguir con la columna del tipo CommandField, tendremos que hacer algo incomodo para el programador... contar en que columna esta exactamente para poder ubicar este control, porqueno podemos realizar una búsqueda con FindControl ya que no sabemos ni siquiera un ID (identificador), pero también tenemos otras soluciones.
OPCION 1: Utilizando CommandField
Con la columna quenos proporciona el wizard tedremos que ir al codebehind y encontrar el control que renderiza.
Si sabemos que esta en la 7 columna (y como todo en .NET empieza de 0), y que solamente tenemos estecontrol tendríamos que capturarlo
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
SelectCase e.Row.RowType
Case DataControlRowType.DataRow
Dim ctrlEliminar As LinkButton = CType(e.Row.Cells(6).Controls(0), LinkButton)ctrlEliminar.OnClientClick = "return confirm('¿Esta seguro de eliminar este registro?');"
End Select
End Sub
y como sabiamos que era un LinkButton??, bueno porque es por defecto a lo que...
Regístrate para leer el documento completo.